gpt4 book ai didi

python - 删除除特定组合外的任何小写字符

转载 作者:行者123 更新时间:2023-12-01 10:18:11 25 4
gpt4 key购买 nike

我有这个字符串:azjf8ee7Ldoge\n Hmeqze= AZ12D Fs\nsdfz14eZe148r
我想匹配所有小写字符,除非是 e 后跟数字 (e\d) 或 反斜杠后跟 n (\\n).
根据我在这里找到的答案:
How to negate specific word in regex?
Match everything except for specified strings
我设法找到了一个解决方案:(?!(e\d|\\n))[a-z] 效果很好,除了它匹配后面的 n一个反斜杠。
Link for a demo
如何排除匹配以反斜杠开头的 n

最佳答案

保留任何e\n 之后有一个数字双字符序列,并在其他情况下删除任何小写 ASCII 字母您可能会使用

re.sub(r'(e\d|\\n)|[a-z]', r'\1', text)

参见 regex demo

详情

  • (e\d|\\n) - 匹配并捕获到第 1 组(由替换模式中的 \1 占位符引用)和 e和一个数字或 \和一个 n字符
  • | - 或者
  • [a-z] - 一个小写的 ASCII 字母。

\1在结果中恢复捕获的值。

如果你想玩环视你可以使用

[a-z](?<!e(?=\d))(?<!\\n)
re.sub(r'[a-z](?<!e(?=\d))(?<!\\n)', '', text)

参见 another regex demo

[a-z](?<!e(?=\d))(?<!\\n) pattern 匹配任何不是 [a-z] 的 ASCII 小写字母 ( e)后跟一个数字 ( (?<!e(?=\d)) ) 而不是 nn 开头((?<!\\n))。

关于python - 删除除特定组合外的任何小写字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58917553/

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