我有这个字符串:azjf8ee7Ldoge \n Hmeqze= AZ12D Fs \nsdfz14eZe148r
。
我想匹配所有小写字符,除了当它是e后跟数字(e\d
)或当它是反斜杠后跟n(\\n
)时。
基于我在这里找到的答案:
如何在正则表达式中取反特定单词?
匹配除指定字符串之外的所有内容,
我设法找到了一个解决方案:(?!(e\d|\\n))[a-z]
效果很好,但它与n
反斜杠后的匹配。
演示链接
如何排除匹配的n
反斜杠?
要e
在\n
后跟两个字符的序列中保留任何一位,并在其他情况下删除任何小写ASCII字母,可以使用
re.sub(r'(e\d|\\n)|[a-z]', r'\1', text)
细节
(e\d|\\n)
-匹配并捕获到组1(\1
在替换模式中用占位符表示),e
并与一个数字或a\
和一个n
字符|
- 要么[a-z]
-小写ASCII字母。的\1
结果中恢复所捕获的值。
如果您想环顾四周,可以使用
[a-z](?<!e(?=\d))(?<!\\n)
re.sub(r'[a-z](?<!e(?=\d))(?<!\\n)', '', text)
该[a-z](?<!e(?=\d))(?<!\\n)
模式与任何[a-z]
不e
带数字((?<!e(?=\d))
)且不n
带n
((?<!\\n)
)的ASCII小写字母()匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句