Javascript 匹配带前导或尾随星号的行的正则表达式
我需要匹配以单个星号字符开始或结束的每一行,中间没有任何其他星号Javascript 匹配带前导或尾随星号的行的正则表达式,javascript,regex,regex-negation,Javascript,Regex,Regex Negation,我需要匹配以单个星号字符开始或结束的每一行,中间没有任何其他星号 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
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]+.\*$
但并非在所有情况下都有效。为什么会出现这种并发症?尝试:
(^\*[^*]*\*?$|^[^*]*\*$)
看
基本上,您有两种情况(
第一种情况|
第二种情况)
在上面的正则表达式中表示的匹配:
^\*
开头,不包含星号[^*]*
,以一个或零个星号\*?$
结尾^[^*]*
,除了最后一个字符\*$
为什么会如此复杂?尝试:
(^\*[^*]*\*?$|^[^*]*\*$)
看
基本上,您有两种情况(
第一种情况|
第二种情况)
在上面的正则表达式中表示的匹配:
^\*
开头,不包含星号[^*]*
,以一个或零个星号\*?$
结尾^[^*]*
,除了最后一个字符\*$
在字符串中不需要任何星号的情况下-使用<代码>彼埃尔弗兰Cou-OIS回答< < /P>
在星号中间接受星号的情况下,试试这个:
var测试=[
“foo-BAR,foo-1*”,
“*FOO,bar%FOO”,
“*foo.BAR”,foo*,
“**foo-BAR-foo”,
“*foo-bar-foo**”,
“foo bar*foo”,
“foo bar foo”];
VaR ReX=/(^*(?!*))*((控制台。log(正则表达式:测试(t)));< /代码> < p>在字符串中间不需要任何星号的情况下,使用<代码>彼埃尔弗兰·Cou-OIS回答。< /P>
在星号中间接受星号的情况下,试试这个:
var测试=[
“foo-BAR,foo-1*”,
“*FOO,bar%FOO”,
“*foo.BAR”,foo*,
“**foo-BAR-foo”,
“*foo-bar-foo**”,
“foo bar*foo”,
“foo bar foo”];
var regex=/(^\*(?!\*).*console.log(regex.test(t)))
correctedyou regExp不包含行num.3如果您检查了更新的行,它会包含行num.3,或者我缺少什么?我不应该删除前导的1.-
部分?这是字符串的一部分?@Eraklon前导的“1.-,2.-…”部分不是字符串的一部分,是示例的数字行。它工作正常!!谢谢你非常多!!您在上面说:“我需要匹配以单个星号字符开头或结尾的每一行(原文如此)”,但是在您提供的示例中,我们可以推断出有更多的条件。说“我需要匹配以单个星号字符开头或结尾的每一行,中间没有任何其他星号”不是更正确吗?更正您的regExp不包含行num.3如果您检查了更新的行,它会包含行num.3,或者我遗漏了什么?我不应该删除前导的1.-
部分?这是字符串的一部分?@Eraklon前导的“1.-,2.-…”部分不是字符串的一部分,是示例的数字行。它工作正常!!非常感谢您h!!您在上面说:“我需要匹配以单个星号字符开头或结尾的每一行(原文如此)”,但在您提供的示例中,我们可以推断出有更多的条件。说“我需要匹配以单个星号字符开头或结尾的每一行,中间没有任何其他星号,不是更正确吗看起来,如果在字符串的中间有一个有效的词,它应该失败。……@ Currtratra Na:你所提出的解决方案与第三行输入不匹配,即一个以星号开始和结束的行。@ YosefTukachinsky:中间的星号无效。参见上面的输入行6:没有匹配允许。输入如代码> *KKK*KK< /代码> s。应该是valid@YosefTukachinsky如果代码< *kkkk> <代码>无效,我想代码> *kkk*kk< /COD>无效。如果它在字符串的中间是有效的,那么它应该失败。@ Currina Tr.Na:您提出的解决方案不匹配第三行输入,即一行开始和结束。用星号。@ YosefTukachinsky:中间的星号无效。参见上面的输入行6:没有匹配允许。输入如<代码> *kkk*kk < /代码>应该是。valid@YosefTukachinsky:我们应该要求采购订单。由于**kkkk
无效,我想*kkk*kk
无效。我得到:“消息”:“SyntaxError:invalid regexp group”,
。请注意,并非所有浏览器都支持Lookback。这不应在生产中使用。我得到:“消息”:“SyntaxError:invalid regexp group”,
。请注意,并非所有浏览器都支持Lookback。这不应在生产中使用。