php – 正则表达式匹配一个’字符’1个字符长

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 正则表达式匹配一个’字符’1个字符长脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试解析具有多个大小缩写的产品名称.例如,媒介可以

m,medium,med

我试过一个简单

PReg_match('/m|medium|med/i',$prod_name,$matches);

这适用于’product m xyz’.然而,当我尝试’产品s / m abc’时,我得到了一个假阳性的比赛.
我也试过了

preg_match('/\bm\b|\bmedium\b|\bmed\b/i',$matches);

强迫它在单词中找到,但是s / m中的m仍然匹配.我假设这是由于引擎将名称中的’/’视为单词分隔符?

总而言之,我需要在字符串中匹配’m’,而不是’s / m’或’small’等等.任何帮助都是值得赞赏的.

解决方法

%\b(?<![/-])(m|med|medium)(?![/-])\b%

您可以使用负向lookbehind或lookahead来排除有问题的分隔符.这意味着“m”/“med”/“medium”这是它自己的单词,但不是斜线或短划线之前或后面.它也适用于字符串的开头和结尾,因为负前瞻/后观不会强制存在匹配字符.

如果您只想分隔空格,可以使用正面版本:

%\b(?<=\s|^)(m|med|medium)(?=\s|$)\b%

(“m”/“med”/“medium”,前面是空格或字符串的开头,后跟空格或字符串的结尾)

脚本宝典总结

以上是脚本宝典为你收集整理的php – 正则表达式匹配一个’字符’1个字符长全部内容,希望文章能够帮你解决php – 正则表达式匹配一个’字符’1个字符长所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。