实施例
我想匹配名称与名称 - 字符串并不总是一致的,例如Grindtimwnow.net,URL PRESENTS和SMACK / URL PRESENTS - 我知道我可能需要使用最多三个不同的正则表达式,我可以使用它。
我遇到的问题,尝试了以下
$ourRegex = "/(\b\w+\W+){0,3}vs(\W+\w+){0,3}/";
$ourRegex = "/:\s+(.+?)\s+Vs\s+(.+)$/";
$ourRegex = '/\s+(.+?)\s+Vs\s+(.+)$/';
Dosen不匹配所有的竞争者名称,我得到像Jonny vs Talk这样的东西 - 名字中最多可以有三个/四个单词,是否有任何简单的解决方案或者我需要运行几个不同的正则表达式并构建一个首先清理搅拌然后正则表达式?
答案 0 :(得分:1)
我认为你使用的任何正则表达式都会有问题,因为它看起来像" vs"部分不一定是前后空格(在" GrindTimeNow.NET:5vs5联盟公告!+ 40城市试用游!"示例)
我看到的问题是NAME组件可能包含字符" vs"这会混淆正则表达式。
如果使用空格位于" vs"之前和之后。然后这个正则表达式应该工作
$ourRegex = "/(.*) [v|V][S|s] (.*)/";