根据是否包含关键字36
'staff'
我想创建一个正则表达式模式来匹配所有在主机URL之后带有1. /services
2. /services/EarNoseThroat
3. /services/EarNoseThroat/Audiology
4. /services/EarNoseThroat/Audiology/CochlearImplant
5. /services/BehavioralHealth/Clinic
6. /services/BehavioralHealth/Clinic/staff
7. /services/BehavioralHealth/Clinic/staff/Jamie-Hudgins
的URL,但不匹配URL中任何位置的/services
。基本上将网址1匹配到5。
我还需要一种模式,不仅仅是匹配URL 6和7。
除了我不知道如何将其组合在一起之外,否定的前瞻似乎可以解决问题。有人可以帮我吗?
类似:
'staff'
答案 0 :(得分:1)
正则表达式匹配以下内容:
/services
/services/EarNoseThroat
/services/EarNoseThroat/Audiology
/services/EarNoseThroat/Audiology/CochlearImplant
/services/BehavioralHealth/Clinic
正则表达式:
^\/services\/(?!.*\bstaff\b).*$
说明:
^
-断言字符串的开头\/services\/
-匹配/services/
(?!.*\bstaff\b)
-前瞻,以确保单词staff
不会出现在字符串中的任何地方.*
-匹配0+次出现的除换行符以外的任何字符$
-声明字符串的结尾正则表达式匹配以下内容:
/services/BehavioralHealth/Clinic/staff
/services/BehavioralHealth/Clinic/staff/Jamie-Hudgins
正则表达式:
^\/services\/(?=.*\bstaff\b).*$
说明:
唯一的区别是正面的前瞻性:
(?=.*\bstaff\b)
-正向查找,以确保单词staff
出现在字符串末尾之前的某个位置