【发布时间】:2011-06-27 07:27:14
【问题描述】:
简单地检查字符串是否包含某个单词(例如“测试”)的正则表达式是什么?我已经进行了一些谷歌搜索,但无法获得此类正则表达式的直接示例。这是一个构建脚本,但与任何特定的编程语言无关。
【问题讨论】:
标签: regex
简单地检查字符串是否包含某个单词(例如“测试”)的正则表达式是什么?我已经进行了一些谷歌搜索,但无法获得此类正则表达式的直接示例。这是一个构建脚本,但与任何特定的编程语言无关。
【问题讨论】:
标签: regex
只是不要锚定你的模式:
/Test/
上述正则表达式将检查在其中某处找到的文字字符串“Test”。
【讨论】:
^.*Test.*$
假设常规 PCRE 风格的正则表达式风格:
如果您想将其作为一个单个完整的单词进行检查,它是\bTest\b,如果需要,带有适当的不区分大小写的标志和您的编程语言的分隔符。 \b 表示“单词边界”,即字符之间的点,可以认为单词开始或结束。例如,由于使用空格来分隔单词,因此空格的两侧都会有单词边界。
如果您想将其作为单词的一部分进行检查,它只是Test,同样带有适当的不区分大小写标志。请注意,通常在这种情况下,专用的“子字符串”方法往往更快,因为它消除了解析正则表达式的开销。
【讨论】:
\b 表示“单词边界”,即分隔两个单词的东西(例如空格)。 \b 不匹配空格;它是一个匹配 之间 个字符(或在大多数情况下位于行首或行尾)的断言。
根据您的正则表达式风格 - 正则表达式功能的确切细节因语言而异。
我将给出 javascript 示例。
如果您不关心 null 安全性...
str = "blah"
str.match(/a/)
// [ 'a', index: 2, input: 'blah', groups: undefined ]
区分大小写
/test/.test("does this string contain the word testtesttest")
// true
不区分大小写
/test/i.test("Test")
不区分大小写,任意字
/\b\w+\b/i.test("bLAH")
// true
【讨论】:
我迟到了几年,但为什么不这样呢?
[Tt][Ee][Ss][Tt]
【讨论】:
[Aa] 模式,它会很快变得非常丑陋。
. 的任何文本,所以我尝试了/[.]/。但/./ 不起作用。
/test/i.test(inputString),其中最后的/i 使其不区分大小写(javascript)
/\./