我需要匹配以星号开头或结尾的每一行。
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
基本上,您有两种情况(
第一种情况|
第二种情况 )
在上面的正则表达式中表示的匹配项:
^\*
开头,不包含星号[^*]*
,以一个或零个星号\*?$
结尾,>^[^*]*
,字符串不包含任何星号[C0如果您在字符串中间也不需要任何星号,请使用\*$
答案。