Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式提取最后一个匹配项忽略新行_Javascript_Regex - Fatal编程技术网

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,帮了我大忙!