Javascript 正则表达式提取最后一个匹配项忽略新行
考虑一个字符串:Javascript 正则表达式提取最后一个匹配项忽略新行,javascript,regex,Javascript,Regex,考虑一个字符串: "@foo #foo@foo@foo #foo\n foofoofoo\n foo @bar" 我花了2天的时间提取最后一次出现的#/@事件,所以这里,在“bar”之前的@。现在,我有这样的[@#](?!.[@#]),除非用户在其中插入新行,否则它似乎可以工作 有人能给我一些提示吗?你可以使用这个lookhahead正则表达式: /[#@](?![\s\S]*[#@])/ (?![\s\s]*[#@])是一个否定的前瞻,它断言在任何行中当前位置之前没有任何@或
"@foo #foo@foo@foo #foo\n
foofoofoo\n
foo @bar"
我花了2天的时间提取最后一次出现的#/@
事件,所以这里,在“bar”之前的@
。现在,我有这样的[@#](?!.[@#])
,除非用户在其中插入新行,否则它似乎可以工作
有人能给我一些提示吗?你可以使用这个lookhahead正则表达式:
/[#@](?![\s\S]*[#@])/
(?![\s\s]*[#@])
是一个否定的前瞻,它断言在任何行中当前位置之前没有任何@
或
<代码>[\s\s]匹配任何字符,包括换行符。您可以使用此lookhahead正则表达式:
/[#@](?![\s\S]*[#@])/
(?![\s\s]*[#@])
是一个否定的前瞻,它断言在任何行中当前位置之前没有任何@
或
[\s\s]
匹配包括换行符在内的任何字符。
默认情况下与新行不匹配,请执行类似于[\s\s]
的全捕获操作相关:
默认情况下与新行不匹配,请执行类似于[\s\s]的全捕获操作
Related:Ty谢谢你的帮助,但是对于像“@foo#bar”这样的字符串,这个正则表达式在我期望“#”时会给我“@”@foo#bar
确实会匹配
你显然是对的,Ty,帮了我很多!谢谢你的帮助,但是对于像“@foo#bar”这样的字符串,这个正则表达式在我期望“#”时会给我“@”@foo#bar
确实会匹配
你显然是对的,Ty,帮了我大忙!