【问题标题】:regex extract last occurrence ignoring new line [duplicate]正则表达式提取最后一次出现忽略新行[重复]
【发布时间】:2016-03-06 21:08:59
【问题描述】:

考虑如下字符串:

 "@foo #foo@foo@foo #foo\n
  foofoofoo\n 
  foo @bar"

我尝试了 2 天来提取最后一次出现的 #/@,所以在这里,“bar”之前的 @。现在,我有类似 [@#](?!.*[@#]) 的东西,除非用户在其中插入新行,否则它似乎可以工作。

有人可以给我一些建议吗?

【问题讨论】:

标签: javascript regex


【解决方案1】:

您可以使用这个前瞻正则表达式:

/[#@](?![\s\S]*[#@])/

RegEx Demo

(?![\s\S]*[#@]) 是否定前瞻,它断言在任何行的当前位置之前都没有@#[\s\S] 匹配任何字符,包括换行符。

【讨论】:

  • Ty 为您提供帮助,但对于像 '@foo #bar' 这样的字符串,当我期望 '#' 时,这个正则表达式给了我 '@'
  • @foo #bar 确实会匹配 # as you can see in this demo
  • 你显然是对的,对我帮助很大!
猜你喜欢
  • 1970-01-01
  • 2012-01-12
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
  • 2019-11-15
  • 1970-01-01
  • 2017-10-07
相关资源
最近更新 更多