-1

例子。

  • URL 展示 MATH HOFFA VS T-REX 第 1 轮
  • URL 展示 MATH HOFFA VS T-REX 第 2 轮
  • URL 展示 Young Miles 与 Rich Dolarz 第 2 轮
  • SMACK/ URL 表示 AYE 动词 vs O-RED
  • SMACK/ URL 呈现 ARSONAL VS CALICOE(全面战斗))
  • SMACK/ URL PRESENTS Rich Dolarz VS X-Factor (FULL BATTLE))
  • GrindTimeNow.NET:不锈钢与 3pfd
  • GrindTimeNow.NET:5vs5 联赛公告!+ 40 城市选拔之旅!
  • www.GrindTimeNow.NET:Magz vs K-mo(选拔赛)
  • GrindTimeNow.Net:由 Murs、Madd Illz 和 Wordsworth 主持的 Scotty P vs Farnum
  • GrindTimeNow.Net:Kaveman Brown 与 Real Talk
  • GrindTimeNow.Net:DIRT VS Richard CRANIUM
  • GrindTimeNow.Net:Jonny Storm 与 Real Talk(2012 年付费会费)

我想匹配名称与名称 - 字符串并不总是一致的,例如 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+(.+)$/';

不匹配所有竞争者的名字,我得到像 Jonny vs Talk 这样的东西 - 名字中最多可以有三个/四个单词,有没有简单的解决方案,或者我需要运行几个不同的正则表达式并首先构建一个函数清理搅拌然后正则表达式吗?

4

1 回答 1

1

我认为您使用的任何正则表达式都会有问题,因为它看起来像“vs”部分之前和之后不一定是空格(在“GrindTimeNow.NET:5vs5 League Announcement!+ 40 city tryout tour!”示例中)

我看到的问题是 NAME 组件可能包含字符“vs”,这会混淆正则表达式。

如果在“vs”前后使用空格,那么这个正则表达式应该可以工作

$ourRegex =  "/(.*) [v|V][S|s] (.*)/";
于 2012-07-08T21:56:40.833 回答