如果a
和b
之间只有最多一个换行符的空白,我想匹配a b
。
Python示例:
import re
r = "a\s*b" # ?
# should match:
print(re.match(r, "ab"))
print(re.match(r, "a b"))
print(re.match(r, "a \n b"))
# shouldn't match:
print(re.match(r, "a\n\nb"))
print(re.match(r, "a \n\n b"))
2条答案
按热度按时间zbq4xfa01#
您需要从
\s
中排除一个换行符,然后可选地将一个换行符与任何零个或多个空格字符匹配,而不是一个换行符:参见regex demo。
a
-a
字母[^\S\n]*
-零个或多个除换行符以外的空格字符(?:\n[^\S\n]*)?
-出现一次或零次\n
-换行符[^\S\n]*
-零个或多个除换行符以外的空格字符b
-一个b
字母。gmxoilav2#
你可以使用这个regex:
RegEx Demo
RegEx详情:
a
:匹配a
*
:匹配0个或多个空格(?:\n *)?
:* 可选 * 匹配一个换行符,后跟0个或多个空格b
:匹配b
在线代码演示