假设a有一个单词列表,并想检查每个单词是否与模式“a”匹配?在哪里?可以是任何字母数字字符。另外,我想忽略包含“-”(破折号)的单词。如何使用regex执行此操作?你知道吗
以下是我目前的情况:
for word in words:
found = re.findall(r'([a]\w{1}[e])(^((?!(-)).)*$)', word)
if found:
print(word)
例如:['snake'、'take'、'want'、'sane'、'1'、'snakke'、's-ake']
我想过滤掉:snake, take, sane
编辑:抱歉,我的问题/代码不匹配
使用
match
而不是findall
。match
将匹配整个字符串,而findall
将查找与正则表达式匹配的子字符串。你知道吗你可以用
见the regex demo。你知道吗
细节
(?i)
-与re.I
相同,忽略大小写\b
-词边界(?<!-)
-不允许在单词边界前使用连字符\w*
-零个或多个单词字符(如果只想匹配字母,请替换为[^\W\d_]*
)a
-一个a
字母[a-z]
-任何ASCII字母e
-一个e
字母\w*
-0+单词字符(或使用[^\W\d_]*
如上所示)\b
-单词边界(?!-)
-后面不跟-
。你知道吗相关问题 更多 >
编程相关推荐