字符串的正则表达式包含?

Gur*_*epS 97 regex

简单地检查字符串是否包含某个单词(例如"Test")的正则表达式是什么?我做了一些谷歌搜索,但无法得到这样一个正则表达式的直接例子.这适用于构建脚本,但与任何特定的编程语言无关.

Pla*_*ure 93

只是不要锚定你的模式:

/Test/
Run Code Online (Sandbox Code Playgroud)

上面的正则表达式将检查在其中的某个地方找到的文字字符串"Test".

  • 您可以锚定模式以匹配字符串的开头或结尾,例如/ ^ Test /或/ Test $ /或甚至/ ^ Test $ /以完全匹配.这个例子是愚蠢的,因为它没有提供比相等的好处,但是例如在进行表单字段验证时,只有当字段包含至少一个数字而且只有数字时才会匹配/ ^\d + $ /等正则表达式. (7认同)
  • 谢谢,我不知道那是那么简单!我绝对没有在谷歌搜索中看到这一点。不锚定我的模式是什么意思? (2认同)
  • 这个正则表达式不适用于 Kotlin,也可能不适用于 Java。使用 `^.*Test.*$` (2认同)

Mic*_*sen 70

假设常规的PCRE风格的正则表达式风格:

如果你想将它作为一个完整的单词进行检查,那么\bTest\b,如果需要,可以使用适当的标志来表示不区分大小写,以及编程语言的分隔符.\b表示"单词边界",即可以认为单词可以开始或结束的字符之间的点.例如,由于空格用于分隔单词,因此空格的两侧都会有单词边界.

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


ACV*_*ACV 9

对于 Java,请使用以下命令:^.*Test.*$.

其读法为:字符串开始 ( ^),然后任何字符 ( .) 可以重复零次或多次 ( *),然后Test任何字符 ( .) 重复零次或多次 ( *),字符串结束 ( $)。