[英]RegEx That Matches Curly Braces and Leading or Trailing Substr Beginning or Ending with Quotes
[英]Regex that matches lines with a leading or trailing asterisk
我需要匹配以单个星号字符开头或结尾的每一行,中间没有任何其他星号。
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
基本上,您有两种情况(
第一种情况|
第二种情况)
在上面的正则表达式中表示匹配:
^\*
开头,不包含星号[^*]*
,并以一个或零个星号\*?$
结尾^[^*]*
除了最后一个字符\*$
如果您在字符串中间也不需要任何星号 - 使用Pierre François
答案。
如果星号在字符串中间被接受,试试这个:
var tests = [ "foo BAR, FOO1*", "*FOO, bar% foo", '*foo). BAR", fOo*', "**foo BAR foo", "*foo bar foo**", "foo bar * foo", "foo bar foo"]; var regex = /(^\*(?.\*)?*(?<?\*)\*?$)|(^\*.(?;\*).*(.<.\*)\*$)/; tests.forEach(t => console.log(regex.test(t)));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.