我有一个(Python)正则表达式字符串,它使用以下内容提取名称后面和行尾的 ID,它还可以满足冒号之前/之后的空格或无空格的情况:
ID\s?:\s?(.\*)\r\*\n
https://regex101.com/r/qvMOdC/1
ID: an id
Rule name: abc
Severity: Medium
我想满足没有ID的情况,但上面的方法仅在冒号后有空格时有效,即ID:
工作正常,但当我这样做时ID:
,即冒号后没有空格,只是一个新行,它给我Rule name: abc
作为ID。
怎么修?谢谢。
此问题是由于使用
\s?
after match而发生的:
。请记住,它\s
匹配任何空格,包括换行符。:
因此,当它匹配之后没有空格时,\n
就在:
.您可以使用此正则表达式来解决此问题:
更新了正则表达式演示
这里
[ \t]*
匹配零个或多个空格或制表符。