2012-07-08 41 views
-1

示例。匹配所有内容,但预先确定前后对比

  • URL PRESENTS MATH霍法VS T-REX ROUND 1
  • URL呈现MATH霍法VS T-REX ROUND 2
  • URL介绍杨氏数VS富Dolarz回合2
  • SMACK/URL PRESENTS AYE VERB VS O型RED
  • SMACK/URL PRESENTS ARSONAL VS CALICOE(FULL战斗))
  • SMACK/URL PRESENTS富Dolarz VS X因素(FULL战斗))
  • GrindTimeNow.NET:不锈钢vs 3pfd
  • GrindTimeNow.NET:5vs5联赛公告! + 40城市试用游!
  • www.GrindTimeNow.NET:MAGZ与K-MO(选拔赛)
  • GrindTimeNow.Net:斯科蒂P VS Farnum由米尔,MADD Illz和华兹华斯
  • GrindTimeNow.Net托管:Kaveman布朗vs皇家通话
  • GrindTimeNow.Net:DIRT VS理查德CRANIUM
  • GrindTimeNow.Net:Jonny风暴vs皇家讲座(支付会费2012)

我想匹配名称VS名称 - 字符串并不总是一致例如Grindtimwnow。网络,网址PRESENTS和SMACK/URL PRESENTS - 我说d我可能需要使用最多三种不同的正则表达式,我可以使用这些正则表达式。

我有这个问题,已经尝试了下面

$ourRegex = "/(\b\w+\W+){0,3}vs(\W+\w+){0,3}/"; 
$ourRegex = "/:\s+(.+?)\s+Vs\s+(.+)$/"; 
$ourRegex = '/\s+(.+?)\s+Vs\s+(.+)$/'; 

这么想的比赛所有的竞争者的名字,我得到的东西像强尼VS讲座 - 名称可以有最多三个/四个字他们,有没有简单的解决方案,或者我需要运行几种不同的正则表达式,并建立一个函数来首先清理stirng然后将其正则表达呢?

回答

1

我想你使用的任何正则表达式都会有问题,因为它看起来像“vs”部分不一定在前后跟一个空格(在“GrindTimeNow.NET:5vs5联盟公告!+ 40城市试用游! “示例)

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

如果空间用于之前和之后“与”那么这个正则表达式应该工作

$ourRegex = "/(.*) [v|V][S|s] (.*)/"; 
+0

完美的作品,谢谢! – 2012-07-09 10:40:41

+0

很高兴听到它的工作。请记得接受正确的答案。 – crempp 2012-07-09 22:08:24

相关问题