Questions tagged «regex»

正则表达式提供了一种声明性语言来匹配字符串中的模式。它们通常用于字符串验证,解析和转换。由于正则表达式尚未完全标准化,因此带有此标签的所有问题还应包括一个标签,用于指定适用的编程语言或工具。注意:询问HTML,JSON等正则表达式往往会产生负面反应。如果有解析器,请改用它。


30
正则表达式匹配不包含单词的行
我知道可以匹配一个单词,然后使用其他工具(例如grep -v)将匹配项反转。但是,是否可以匹配不包含特定单词的行,例如hede使用正则表达式? 输入: hoho hihi haha hede 码: grep "<Regex for 'doesn't contain hede'>" input 所需的输出: hoho hihi haha

30
如何使用正则表达式验证电子邮件地址?
多年来,我逐渐发展了 正则表达式,可以假定MOST电子邮件地址未将IP地址用作服务器部分,因此可以正确地验证这些电子邮件地址。 我在几个PHP程序中使用了它,并且大多数时候都可以使用。但是,有时会遇到某个使用它的网站出现问题的人与我联系,最终我不得不进行一些调整(最近我意识到我不允许使用4个字符的TLD)。 您已经或看到的用于验证电子邮件的最佳正则表达式是什么? 我已经看到了几种使用函数的解决方案,这些函数使用了几个较短的表达式,但是我宁愿在一个简单的函数中使用一个长的复杂表达式,而不是在一个更复杂的函数中使用几个短的表达式。


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

20
如何在正则表达式中使用变量?
我想String.replaceAll()在JavaScript中创建一个方法,并且我认为使用正则表达式是最简洁的方法。但是,我不知道如何将变量传递给正则表达式。我能做到这一点已经将取代所有的实例"B"有"A"。 "ABABAB".replace(/B/g, "A"); 但是我想做这样的事情: String.prototype.replaceAll = function(replaceThis, withThis) { this.replace(/replaceThis/g, withThis); }; 但是显然这只会替换文本"replaceThis"...所以如何将这个变量传递给我的正则表达式字符串?
1377 javascript  regex 

21
如何在JavaScript正则表达式中访问匹配的组?
我想使用正则表达式匹配字符串的一部分,然后访问带括号的子字符串: var myString = "something format_abc"; // I want "abc" var arr = /(?:^|\s)format_(.*?)(?:\s|$)/.exec(myString); console.log(arr); // Prints: [" format_abc", "abc"] .. so far so good. console.log(arr[1]); // Prints: undefined (???) console.log(arr[0]); // Prints: format_undefined (!!!) 我究竟做错了什么? 我发现上面的正则表达式代码没有任何问题:我正在测试的实际字符串是: "date format_%A" 报告“%A”未定义似乎是一个非常奇怪的行为,但与该问题没有直接关系,因此我打开了一个新的代码,为什么匹配的子字符串在JavaScript中返回“未定义”?。 问题在于console.log它的参数就像一条printf语句一样,并且由于我正在记录的字符串("%A")具有特殊值,因此它试图查找下一个参数的值。
1368 javascript  regex 

5
\ d的效率不及[0-9]
我昨天做了评论,其中有人曾用一个答案[0123456789]的正则表达式,而不是[0-9]或\d。我说过使用范围或数字说明符可能比使用字符集更有效。 我决定今天进行测试,令我惊讶的是(至少在C#regex引擎中)\d似乎效率比其他两个似乎相差不大的效率低。这是我的测试输出,超过10000个随机字符串,包含1000个随机字符,其中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]。有没有更多的\d不是简单的简写[0-9]? 这是测试代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; using System.Text.RegularExpressions; namespace SO_RegexPerformance { …
1246 c#  regex  performance 


3
使用grep进行负匹配(不包含foo的匹配行)
我一直在尝试找出此命令的语法: grep ! error_log | find /home/foo/public_html/ -mmin -60 要么: grep '[^error_log]' | find /home/baumerf/public_html/ -mmin -60 除了名为的文件,我需要查看所有已修改的文件error_log。 我在这里读过它,但是只发现了一个not-regex模式。
988 regex  grep 

30
如何使用正则表达式验证电话号码
我正在尝试综合使用正则表达式来验证电话号码。理想情况下,它将处理国际格式,但必须处理美国格式,包括以下内容: 1-234-567-8901 1-234-567-8901 x1234 1-234-567-8901 ext1234 1 (234) 567-8901 1.234.567.8901 1/234/567/8901 12345678901 我会以目前的尝试来回答,但我希望有人能做得更好和/或更优雅。


11
检查字符串是否与JS中的正则表达式匹配
我想使用JavaScript(可以与jQuery一起使用)进行一些客户端验证,以检查字符串是否与正则表达式匹配: ^([a-z0-9]{5,})$ 理想情况下,它将是一个返回true或false的表达式。 我是JavaScript新手,match()我需要做什么?似乎要检查字符串的一部分是否匹配正则表达式,而不是整个字符串。
750 javascript  regex  match 


25
使用bash和regex在一行中查找并杀死一个进程
我经常需要在编程期间杀死一个进程。 我现在的方式是: [~]$ ps aux | grep 'python csp_build.py' user 5124 1.0 0.3 214588 13852 pts/4 Sl+ 11:19 0:00 python csp_build.py user 5373 0.0 0.0 8096 960 pts/6 S+ 11:20 0:00 grep python csp_build.py [~]$ kill 5124 如何自动提取进程ID并在同一行中将其杀死? 像这样: [~]$ ps aux | grep 'python csp_build.py' | kill <regex that …
647 regex  bash  terminal  awk 

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.