如何匹配不匹配的字符串(双下划线、双虚线和空格)

2024-10-03 06:18:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想匹配任何不包含--and\uuu和空格的字符串。你知道吗

应该匹配的字符串

asd_asd-qwem
asd_-asd-_qwem
asdasdqwem

不应匹配的字符串

asd_asd--qwem
asd__asd-qwem
asd__asd--qwem

Tags: and字符串uuu空格asdqwemasdasdqwem
3条回答

非正则表达式替代方法可能涉及检查字符串中的子字符串:

>>> l = ["asd_asd-qwem", "asd_-asd-_qwem", "asdasdqwem", "asd_asd--qwem", "asd__asd-qwem", "asd__asd--qwem"]
>>> c = ["--", "__", " "]
>>> [s for s in l if not any(item in s for item in c)]
['asd_asd-qwem', 'asd_-asd-_qwem', 'asdasdqwem']

其中c定义了我们不想在字符串中看到的子字符串列表。你知道吗

因为您添加了regex标记,所以这里是我的解决方案。你知道吗

正则表达式:^(?!.*(--|__| +)).+$

说明:

  • (?!.*(--|__| +))将查找__--spaces缺失。如果它们都不存在,那么整个字符串将是匹配的。你知道吗

Regex101 Demo

似乎你可以这样做:

if not ('--' in s or '__' in s):
    ...

或者,相当于:

if '--' not in s and '__' not in s:
    ...

相关问题 更多 >