在过去的几天里,我才刚刚开始使用regex,现在我很困惑。检查Google和Stack--寻找答案,但没有运气。。。
给出以下列表:
-
district\u代码,
-
county\u district\u代码,
-
CoDis,
-
距离,
-
Dist代码,
-
DistCode,
-
-
-
教育服务区,
-
地区
-
地区名称,
-
地区名称,
-
县代码,
我需要找到符合
全部的
以下标准:
-
包含“dist”或“codis”
-
不包含“name”
-
不要以“地区”结尾
从第一个列表中,你会看到破折号以外的项目应该被过滤掉,但我对忽略以“district”结尾的条目的第三个标准有问题。。。尽管我(可能不正确)使用了“district”的负面前瞻,但regex一直在捕捉“Education\u service\u district”和“district”。我使用的是Python 3.6.1,我能想到的最好的方法是以下内容(顺便说一句,我使用的是不区分大小写的标志)
^.*(dist|codis)(?!.*name).*(?!district$)$
提前感谢您的帮助。以下是我正在使用的全部代码(以防我做了一些与regex无关的蠢事):
import re
sample = ["district_code", "county_district_code", "CoDis", "Dist", "Dist Code", "DistCode", "educational_service_district", "District", "District Name",
"DistrictName", "County Code"]
regex = "^.*(dist|codis)(?!.*name).*(?!district$)$"
regex = re.compile(regex, re.IGNORECASE)
for x in sample:
if re.match(regex, x):
print('Regex query', regex, 'matched sample text', x)