正则表达式匹配带有前导或结尾星号的行

Trimax

我需要匹配以单个星号字符开头或结尾的每一行,而中间没有任何其他星号。

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]+.\*$

但并非在所有情况下都有效。

皮埃尔·弗朗索瓦(Pierre Francois)

为什么这么复杂?尝试:

(^\*[^*]*\*?$|^[^*]*\*$)

参见https://regex101.com/r/oOCSE5/6

基本上,您在上面的正则表达式中表示了两种情况的(第一种情况,|第二种情况)

  1. 字符串以星号开头^\*,不包含星号[^*]*,并以一个或零个星号结尾\*?$
  2. ^[^*]*除最后一个字符外,字符串不包含任何星号\*$

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

正则表达式严格匹配具有不同结尾的两行

正则表达式:删除多个带有行连续字符的结尾

带有正则表达式的多重匹配

正则表达式匹配一个带有特殊字符的单词,这些单词以哈希开头,以空格结尾

正则表达式匹配行的末尾带有单个“

正则表达式匹配行,带有特殊字符的单词除外

正则表达式匹配前导和尾随空格

删除所有正则表达式匹配的行

带有星号掩码的ip地址的javascript正则表达式

带有星号的文件名的正则表达式

带有星号*和下划线_的Markdown强调正则表达式_

如何使用正则表达式使用正则表达式匹配以“ $”结尾的内容?

正则表达式-匹配字符串而没有前导和尾随空格

正则表达式匹配行

正则表达式右匹配网址,以DOT结尾

sed正则表达式与可变结尾不匹配

正则表达式匹配以“ /”结尾的子组

以 ABBA 结尾的 Oracle 正则表达式匹配模式

正则表达式是否以空格开头或结尾匹配

正则表达式匹配 URL 的结尾

正则表达式以匹配单词的结尾

正则表达式模式以匹配以 # 或 > 结尾的名称

正则表达式匹配以提取以空格结尾的文本

正则表达式匹配以空格或逗号结尾的单词

正则表达式/ PHP,结尾不匹配

定义正则表达式以匹配URL的结尾

正则表达式匹配到文本结尾

正则表达式,用于读取带有前导零的正整数

正则表达式用于匹配单词,除非前一行以单词结尾