繁体   English   中英

如何将这种复杂的模式与regex匹配?

[英]How can I match this complex pattern with regex?

我有如下数据:

记录1:

Winter 2014 - Barrie, Muskoka
<br style="display: block;">
Summer 2014 - Orangeville, Owen Sound
<br style="display: block;">
Fall 2013 - Barrie

记录2:

Winter 2014 - Barrie
<br style="display: block;">
Fall 2013 - Barrie

我需要通过标签对AND和OR进行过滤。 有一个校园过滤器和一个术语过滤器-在每个过滤器中,您可以选择多个校园或多个术语,并且需要相应地过滤。

例如:

Campus: Orangeville,Barrie
Term: Summer 2014,Winter 2014

上面的标签应同时返回这两个结果,因为第一条记录的2014年夏季旁边列出了Orangeville,第二条记录的2014年冬季旁边列出了Barrie。

经过一些研究和测试,我认为我需要以下内容,但我无法使其正常工作...我是一位正则表达式初学者。

(?=Winter\ 2014\ \-\ (Barrie|Orangeville))(?=Summer\ 2014\ \-\ (Barrie|Orangeville))

谢谢。

如果我对您的理解正确,则可以这样进行匹配:

var campuses = ["Barrie", "Orangeville"];
var terms = ["Winter 2014", "Summer 2014"];

var your_regex = new RegExp("(" + terms.join("|") + ")\\\\s-\\\\s(" + campuses.join("|") + ")");

然后测试您的记录是否匹配:

if (your_regex.test(your_record)) {
  // Record matches
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM