2011-02-15 86 views
65

简单检查一个字符串是否包含某个单词(例如'Test')的正则表达式是什么?我做了一些谷歌搜索,但无法得到这样一个正则表达式的直接例子。这是一个构建脚本,但对任何特定的编程语言都没有影响。正则表达式的字符串包含?

回答

56

假设定期PCRE风格的正则表达式的口味:

如果您要检查它作为一个单一,完整的字,如果需要,并为您的编程语言的分隔符是\bTest\b,与不区分大小写相应的标志。 \b代表一个“单词边界”,即字符之间的一个点,其中一个单词可以被认为是开始或结束。例如,由于空格用于分隔单词,因此在空间的任一侧都会有单词边界。

如果你想检查它作为的一部分,它只是Test,再次适当的标志不区分大小写。请注意,在这种情况下,通常专用的“子字符串”方法往往会更快,因为它消除了解析正则表达式的开销。

+1

“`\ b``代表一个”单词边界“,即分隔两个单词(如空格)的东西。” `\ b`与空格不匹配;它是在*字符之间匹配*的断言(或者在大多数情况下在一行的开始或结尾处)。 – strager 2011-02-15 01:27:25

63

只是不锚你的模式:

/Test/ 

上述正则表达式将检查文本字符串“测试”被发现在它的地方。

+1

谢谢,我不知道那是那么简单!我绝对没有看到我的谷歌搜索。不要固定我的模式,你的意思是什么? – dotnetdev 2011-02-15 01:20:15

+5

您可以锚定图案以匹配字符串的开头或结尾,例如/ ^分别测试/或/测试$ /或甚至/ ^测试$ /以完全匹配。这个例子是致命的,因为它比平等比较没有任何好处,但是例如当进行表单字段验证时,像/^\ d + $ /这样的正则表达式只有在字段包含至少一个数字而只有数字时才匹配。 – 2011-02-15 02:35:12

-5

我已经晚了几年,但为什么不呢?

[Tt][Ee][Ss][Tt] 
相关问题