正则表达式php匹配

时间:2017-10-24 14:25:45

标签: php regex

我想检查单词是否包含preg_match函数的前缀: 如果我有post_word或'best_word

我的前缀是postbest

我应该在这里使用哪种模式?

我试过了:

((?:best_|post_)("word":)\s*("?[^,}"\s]+"?),?)

它应符合以下条款:

  • best_word
  • post_word
  • best_Word
  • post_Word

1 个答案:

答案 0 :(得分:0)

您可以使用|制作捕获组中的替换列表。你应该使用单词边界,这样你就不会得到部分匹配。

/\b(?<prefix>post_|best_)?word\b/i

这里不需要指定的捕获组,只是为了显示前缀的位置。

/\b(?:post_|best_)?word\b/i

的功能相同。

目前还不清楚你正在使用正则表达式中的引号,空格,冒号和逗号。从你的示例字符串开始,这个正则表达式应该可以工作:

https://regex101.com/r/6b8ijy/2/