我正在尝试为表达式构建正则表达式,以获取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
-尾随字边界