我希望正则表达式匹配_Hello_
或_Hell No_
所以双方的要求是_
,两者之间有一些文字。但是,文本不能以空格开头或以空格结尾(但它们可以在文本中包含空格)。
我已经尝试了_[\S]+.*[\S]+_
,但是当文字中的字符少于2个时,这就无法匹配,例如_H_
请帮忙
答案 0 :(得分:1)
尝试以下模式:
_\S(.*\S)?_
此模式允许单个非空白字符。它还允许更多的字符,但它们必须以非空白字符结尾。
答案 1 :(得分:0)
您可以单独处理单字符案例:
_(\S.*\S|\S)_
您可能希望将.*
替换为.*?
,以使其不贪婪。否则,您将无法正确匹配此模式的多个实例:
_foo_ _bar_
^^^^^^^^^
one match
答案 2 :(得分:0)
这个怎么样:
^
在括号内使用?
表示不是任何空格
.*
表示零或一个(任何不是空格的字符)
numpy
表示任意数量的任何字符
答案 3 :(得分:0)
我建议采用以下模式:
^_.+_$
这将匹配前三行,但不匹配第4和第5行:
_Hello_
_Hello_Hello_
_Hello Hello_
_Hello_
_Hello_
^---Trailing space here