gpt4 book ai didi

python - 如何在 re 中有两个模式

转载 作者:太空宇宙 更新时间:2023-11-04 02:46:29 26 4
gpt4 key购买 nike

假设 a 有一个单词列表,并且想遍历每个单词以查看它是否与模式“a?e”匹配,在哪里?可以是任何字母数字字符。另外,我想忽略包含“-”(破折号)的单词。我如何使用正则表达式来做到这一点?

这是我目前拥有的:

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

已编辑:抱歉与我的问题/代码不匹配

最佳答案

你可以使用

r'(?i)\b(?<!-)\w*a[a-z]e\w*\b(?!-)'

参见 the regex demo .

详情

  • (?i) - 与 re.I 相同, 忽略大小写
  • \b - 单词边界
  • (?<!-) - 允许单词边界前没有连字符
  • \w* - 零个或多个单词字符(如果您只想匹配字母,请替换为 [^\W\d_]* )
  • a - 一个 a
  • [a-z] - 任何 ASCII 字母
  • e - 一个 e
  • \w* - 0+ 个单词字符(或使用上面提示的 [^\W\d_]*)
  • \b - 单词边界
  • (?!-) - 后面没有 - .

关于python - 如何在 re 中有两个模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45021757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com