我需要匹配以单个星号字符开头或结尾的每一行,而中间没有任何其他星号。
1.- foo BAR, FOO1*
2.- *FOO, bar% foo
3- *foo). BAR", fOo*
4.- **foo BAR foo
5.- *foo bar foo**
6.- foo bar * foo
7.- foo bar foo
我想将数字1匹配到3,其他的我将不匹配它们。
我的方法:
^[\*](?:[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-\s])|^[a-zA-Z0-9.!#$%&'+/=?^_`{|}~-\s]+.\*$
但并非在所有情况下都有效。
为什么这么复杂?尝试:
(^\*[^*]*\*?$|^[^*]*\*$)
参见https://regex101.com/r/oOCSE5/6
基本上,您在上面的正则表达式中表示了两种情况的(
第一种情况,|
第二种情况)
:
^\*
,不包含星号[^*]*
,并以一个或零个星号结尾\*?$
^[^*]*
除最后一个字符外,字符串不包含任何星号\*$
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句