PHP Regex显示abc或abc-xyz格式



我正在尝试为表达式构建正则表达式,以获取Boost Mobile或BoostMobile的值(以存在的值为准)。

有什么建议吗?

在NFA正则表达式中,在未绑定的交替组中,匹配的第一个分支停止组处理,位于右侧的其他分支不会根据字符串进行检查。您可以在与竖条或管道符号交替上阅读更多信息。

因此,交换值并简化模式,您可以使用

/b(Boost s*Mobile|Boost)b/i

然而,这里最有效的方法是使用可选组:

/bBoost(?:s*Mobile)?b/i
        ^^          ^^

查看regex演示

i不区分大小写的修饰符是在整个正则表达式上设置的。您不需要在模式的开始/结束时打开和关闭它。此外,W*可以匹配一个空字符串,所以当b工作时,您检查单词边界的方法可能会失败。

图案详细信息

  • b-前导字边界
  • Boost-文字子字符串
  • (?:s*Mobile)?-与
    • s*-0+空白
    • Mobile-文字子字符串
  • b-尾随字边界

最新更新