[英]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.