检查一个string是否与Ruby中的正则expression式匹配的最快方法是什么? 我的问题是,我必须通过一个巨大的string列表来“egrep”来查找哪些匹配在运行时给出的正则expression式。 我只关心string是否匹配正则expression式,而不是匹配的地方,匹配组的内容是什么。 我希望这个假设可以用来减less我的代码花费在匹配正则expression式上的时间。 我加载正则expression式 pattern = Regexp.new(ptx).freeze 我发现string =~ pattern比string.match(pattern)稍快。 还有其他的技巧或捷径可以用来使这个testing更快吗?
我需要匹配的Web应用程序中的某些url,即/123,456,789 ,并写了这个正则expression式匹配的模式: r'(\d+(,)?)+/$' 我注意到它似乎没有评估,即使在testing模式几分钟后: re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523') 预期的结果是没有匹配。 然而,这个expression式几乎立即执行(注意结尾的斜线): re.findall(r'(\d+(,)?)+/$', '12345121,223456,123123,3234,4523,523523/') 这是一个错误?
我想匹配整个词的正则expression式。 在下面的例子中,我试图匹配s或season但我有什么匹配s , e , a , o和n 。 [s|season] 我如何制定正则expression式来匹配整个单词?
我search了很多,但没有写的地方如何从记事本+删除非ASCII字符? 我需要知道什么命令写在发现和replace(与图片将是伟大的) 如果我想做一个白名单和书签所有的ASCII字/行,所以非ASCII行将被标记 如果文件很大,不能select所有的ASCII行,只想select包含非ASCII字符的行。
我想parsing一个hh:mm:ssstring。 简单的是([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)其中2:3:24或02:03:24string。 我想更进一步,并通过validation,即使在像 如果你只input56,那应该是通过的,因为56可以被认为是56秒[SS] 如果您input2:3或02:03或02:3或2:03,则应通过。 2分3秒[MM:SS] 如果你进入20:30:12,20小时30分12秒[HH:MM:SS] 如果你input78:12,不通过78分钟是错误的…. 基本上,如果find一个“:”,把“:”之前的数字看作是MM中的数字,把“:”之后的数字看作SS。 如果两个“:”被认为是HH:MM:SS 我想出了这个模式。 (^([0-1]?\d|2[0-3]):([0-5]?\d):([0-5]?\d)$)|(^([0-5]?\d):([0-5]?\d)$)|(^[0-5]?\d$) 它似乎工作正常。 我想知道任何其他更简单的正则expression式,可以做这个工作。
很多时候我使用stringmatch函数来判断一个string是否与正则expression式匹配。 if(str.match(/{regex}/)) 这有什么区别: if (/{regex}/.test(str)) 他们似乎给出了相同的结果?
我需要关于非贪婪选项的正则expression式匹配的帮助。 匹配模式是: <img\s.*> 要匹配的文字是: <html> <img src="test"> abc <img src="a" src='a' a=b> </html> 我在http://regexpal.com上testing 这个expression式匹配从<img到last >所有文本。 我需要它匹配最初的<img之后遇到的第一个,所以在这里我需要得到两个匹配,而不是我得到的。 我尝试过所有非贪婪的组合? ,没有成功。
我昨天发表了一个评论,有人用[0123456789]作为正则expression式而不是[0-9]或\d 。 我说,使用范围或数字说明符可能比字符集更有效。 我决定今天testing一下,发现令我吃惊的是(至less在C#正则expression式引擎中) \d似乎比其他两个似乎没有太大的差别。 这是我的testing输出超过10000随机string1000个随机字符与5077实际上包含一个数字: Regular expression \d took 00:00:00.2141226 result: 5077/10000 Regular expression [0-9] took 00:00:00.1357972 result: 5077/10000 63.42 % of first Regular expression [0123456789] took 00:00:00.1388997 result: 5077/10000 64.87 % of first 有两个原因令我感到惊讶: 我会认为范围将比集合更有效地执行。 我不明白为什么\d比[0-9]更糟糕。 除了简单的[0-9]之外还有更多的东西吗? 这里是testing代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace SO_RegexPerformance { […]
有人能用一种可以理解的方式解释这两个术语吗?