php - 正则表达式匹配精确的单词

标签 php regex preg-split

我希望我的正则表达式匹配 ?ver?v,但 ?version

这是我目前所拥有的:$parts = preg_split( "(\b\?ver\b|\b\?v\b)", $src );

我认为问题可能在于我如何转义 ?

最佳答案

您的模式试图匹配前面带有单词 char 的 ?,但由于没有字符,所以您没有匹配。

使用以下模式:

'/\?v(?:er)?\b/'

参见 regex demo

图案细节:

  • \? - 文字 ? 字符
  • v(?:er)? - vver
  • \b - 单词边界(即必须有一个非单词字符(不是数字、字母或 _)或 之后的字符串结尾vver).

请注意,您不需要第一个(初始)单词边界,因为它已经存在于 ?(非单词字符)和 v(单词字符)。如果 ? 是可选的,您将需要一个单词边界。

关于php - 正则表达式匹配精确的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45165130/

相关文章:

javascript - 正则表达式:如何在文本之间获取某些内容,但其他文本之间除外

java - SQL正则表达式到Java正则表达式的转换器

php - 函数 split() 已弃用,preg_split() : No ending delimiter ',' found

PHP preg_split : Split string by other strings

php - 修改 WooCommerce 延期交货消息

php - 如果用户输入错误,如何防止用户登录

javascript - 如何匹配 URL 中的特定参数?

php - 如何在 pdo->query 中添加变量值

php - 是否可以将整个网站包装在 iframe 中?

php - 拆分字符串中的第一个空格和最后一个空格并限制输出的大小 3