javascript - 如何在Javascript中实现正则表达式的正 "lookbehind"

标签 javascript regex lookbehind

更新的问题

假设字符串 "?foo=bar&nonfoo=bar&foo=bar" ,在这种情况下我需要捕获:

  • foo=bar
  • foo=foo

我用 Perl 做的, see here .

但是Javascript不支持lookbehind,那么表达式(?<=) (正向回顾)无法识别。

我也试试(?:[?&])((foo\=[^&#]*)|(foo(?=[&#]))|(foo(?!.))) (非捕获组语法),而是执行方法 match返回:

  • ?foo=bar
  • &foo=foo

最佳答案

我不完全确定你的结果应该是什么......但也许这个可以解决你的问题:

(?!foo\?)(foo(\=[^\?^&]+)?)+

这将匹配:

  • foo=bar
  • foo foofoo

关于javascript - 如何在Javascript中实现正则表达式的正 "lookbehind",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37225095/

相关文章:

javascript - Polymer 1.0 使用 ExcludeLocalNames 跳过节点

python-3.x - 正则表达式识别Python中写成单词的数字?

javascript - 如何在 javascript 中使用前瞻来实现负面回顾?

.net - 使用正则表达式进行搜索和替换(包括lookbehinds)在 VS2017 中不起作用

javascript - 使用具有零宽度lookbehind的正则表达式在JavaScript中分割字符串

javascript - 当我们返回一个值以及从微任务队列中的 then() 链返回 Promise.resolve 时会发生什么?

javascript - 单击按钮从附近的输入中获取值?

javascript - 从 iframe 检索 PDF

Java 正则表达式

regex - 排除正则表达式中的字符组合(如果找到组合,则正则表达式应该失败)