程序设计

专业和发烧友程序员的问答

30
RegEx匹配XHTML自包含标签以外的打开标签
已锁定。此问题的评论已被禁用,但它仍在接受新的答案和其他交互方式。了解更多。 我需要匹配所有这些开始标签: <p> <a href="foo"> 但不是这些: <br /> <hr class="foo" /> 我想出了这个,想确保我做对了。我只是捕捉到a-z。 <([a-z]+) *[^/]*?> 我相信它说: 找到一个小于,然后 查找(并捕获)az一次或多次,然后 找到零个或多个空格,然后 找到零次或多次贪婪的字符,除了/,然后 寻找大于 我有那个权利吗?更重要的是,您怎么看?
1473 html  regex  xhtml 


30
从客户端检测到潜在的危险Request.Form值
每次用户在Web应用程序中的页面中包含内容<或>在页面中发布内容时,都会引发此异常。 我不想讨论引发异常或崩溃整个Web应用程序的明智性,因为有人在文本框中输入了字符,但是我正在寻找一种优雅的方式来解决这个问题。 捕获异常并显示 发生错误,请返回并重新输入整个表格,但是这次请不要使用< 在我看来还不够专业。 禁用后验证(validateRequest="false")肯定会避免此错误,但是它将使页面容易受到多种攻击。 理想情况下:当发生包含HTML受限字符的回发时,Form集合中的已发帐值将自动进行HTML编码。所以.Text我的文本框的属性将是something & lt; html & gt; 有没有办法可以从处理程序做到这一点?



18
Memcached与Redis?
我们正在将带Redis服务器的Ruby Web应用程序用于缓存。有没有要测试Memcached的地方呢? 什么会给我们带来更好的性能?Redis和Memcached之间有什么优缺点? 要考虑的要点: 读/写速度。 内存使用情况。 磁盘I / O转储。 缩放比例。

18
丢弃Git中的本地提交
由于某些错误的选择,我的本地Git存储库当前比源服务器提前了5次提交,并且状态不佳。我想摆脱所有这些提交,然后重新开始。 显然,删除我的工作目录并重新克隆就可以做到,但是再次从GitHub下载所有内容似乎有点过头了,并且没有充分利用我的时间。 也许git revert正是我所需要的,但是我不想在源头之前(甚至是六个)结束10次提交,即使它确实使代码本身回到了正确的状态。我只想假装最后一个半小时未曾发生。 有一个简单的命令可以做到这一点吗?这似乎是一个显而易见的用例,但我没有找到任何示例。 请注意,这个问题专门针对commits,而不是: 未跟踪的文件 不分阶段的变更 上演但未提交的更改
1466 git 

30
表命名难题:单数与复数名称[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 学术界认为表名应该是存储其属性的实体的单数形式。 我不喜欢任何需要在名称Users两边加上方括号的T-SQL,但是我将表重命名为单数,永远判刑那些使用该表的人有时不得不使用方括号。 我的直觉是保持单数形式更正确,但我的直觉还是括号表示不需要的内容,例如列名中带有空格等。 我应该走还是留?

20
为什么我需要一直做“ --set-upstream”?
我在Git中创建一个新分支: git branch my_branch 推它: git push origin my_branch 现在说有人在服务器上做了一些更改,我想退出origin/my_branch。我做: git pull 但是我得到: You asked me to pull without telling me which branch you want to merge with, and 'branch.my_branch.merge' in your configuration file does not tell me, either. Please specify which branch you want to use on the command …
1464 git  git-branch 

23
编译用于高放射性环境的应用程序
我们正在编译一个嵌入式C / C ++应用程序,该应用程序部署在受到电离辐射轰击的环境中的屏蔽设备中。我们正在使用GCC并为ARM进行交叉编译。部署后,我们的应用程序会生成一些错误数据,并且崩溃的次数比我们想要的要多。硬件是为此环境设计的,我们的应用程序已在该平台上运行了几年。 我们是否可以对代码进行更改,或者可以进行编译时改进以识别/纠正由单个事件引发的软错误和内存损坏?其他开发人员是否在减少软错误对长期运行的应用程序的有害影响方面取得了成功?
1456 c++  c  gcc  embedded  fault-tolerance 

16
在Visual Studio中使用Git [关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 作为Visual SourceSafe的长期用户(讨厌),我正在与一位同事讨论切换到SVN的问题。他建议改为使用Git。因为显然,它可以在没有中央服务器的情况下用作对等网络(我们是3开发人员团队)。 但是,我无法找到有关将Git与Visual Studio集成的工具的任何信息-是否存在这种东西? 在Visual Studio中使用Git有哪些可用的技术?在开始之前,我需要了解哪些区别?
1455 visual-studio  git 

30
如何在div中垂直对齐图像
如何在容器中对齐图像div? 例 在我的例子,我需要垂直居中的<img>在<div>用class ="frame“: <div class="frame" style="height: 25px;"> <img src="http://jsfiddle.net/img/logo.png" /> </div> .frame的高度是固定的,图像的高度是未知的。.frame如果这是唯一的解决方案,则可以添加新元素。我正在尝试在Internet Explorer 7和更高版本的WebKit,Gecko上执行此操作。 在这里查看jsfiddle 。 .frame { height: 25px; /* Equals maximum image height */ line-height: 25px; width: 160px; border: 1px solid red; text-align: center; margin: 1em 0; } img { background: #3A6F9A; vertical-align: middle; max-height: 25px; max-width: …

27
如何设置HTML <select>元素的默认值?
我认为"value"在&lt;select&gt;下面的元素上添加属性集会导致默认情况下选中&lt;option&gt;包含我的提供的内容"value": &lt;select name="hall" id="hall" value="3"&gt; &lt;option&gt;1&lt;/option&gt; &lt;option&gt;2&lt;/option&gt; &lt;option&gt;3&lt;/option&gt; &lt;option&gt;4&lt;/option&gt; &lt;option&gt;5&lt;/option&gt; &lt;/select&gt; 运行代码段隐藏结果展开摘要 但是,这没有按我预期的那样工作。如何设置&lt;option&gt;默认选择的元素?
1454 html  html-select 

22
修复Git分离头?
我在存储库中进行了一些工作,发现文件有本地更改。我不再想要它们了,所以我删除了文件,以为我可以签出新副本。我想做相当于 svn up . 使用git pull似乎没有用。一些随机搜索将我带到一个有人建议这样做的站点 git checkout HEAD^ src/ (src是包含已删除文件的目录)。 现在我发现我有一个超脱的头。我不知道那是什么。我该如何撤消?
1453 git 

30
确定整数的平方根是否为整数的最快方法
我正在寻找确定一个long值是否为完美平方(即其平方根是另一个整数)的最快方法: 通过使用内置Math.sqrt() 函数,我已经完成了简单的方法,但是我想知道是否有一种方法可以通过将自己限制为仅整数域来更快地完成操作。 维护查找表是不切实际的(因为大约有2 31.5个整数,其平方小于2 63)。 这是我现在做的非常简单明了的方法: public final static boolean isPerfectSquare(long n) { if (n &lt; 0) return false; long tst = (long)(Math.sqrt(n) + 0.5); return tst*tst == n; } 注意:我在许多Project Euler问题中都使用了此功能。因此,没有其他人将不得不维护此代码。这种微优化实际上可能会有所作为,因为挑战的一部分是在不到一分钟的时间内完成每种算法,并且在某些问题中,需要数百万次调用此函数。 我已经尝试过不同的解决方案: 经过详尽的测试后,我发现0.5没有必要将Math.sqrt()的结果添加进去,至少在我的机器上没有。 的平方根倒数快速增快,但它给了不正确的结果对于n&gt; = 410881.然而,所建议BobbyShaftoe,我们可以使用对于n &lt;410881的FISR黑客攻击。 牛顿的方法比慢Math.sqrt()。这可能是因为Math.sqrt()使用了类似于牛顿方法的方法,但是是在硬件中实现的,因此它比Java快得多。同样,牛顿法仍然需要使用双精度。 一种经过改进的牛顿方法,其中使用了一些技巧,以便仅涉及整数数学运算,因此需要一些技巧来避免溢出(我希望此函数与所有正的64位带符号整数一起使用),但它仍然比慢Math.sqrt()。 二进制印章甚至更慢。这是有道理的,因为二进制印章平均需要16次通过才能找到64位数字的平方根。 根据John的测试,or在C ++中,使用语句比使用a更快switch,但是在Java和C#中,or和之间似乎没有区别switch。 我还尝试制作一个查找表(作为64个布尔值的私有静态数组)。然后or,我只是说而不是switch或statement if(lookup[(int)(n&amp;0x3F)]) { test } else …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.