问题标签 [lookbehind]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1652 浏览

c++ - 如何在 C++ 中使用或模拟后向断言?

我正在寻找执行搜索,其中字符串(bar)没有立即被两个字符串(foo)或(boo)中的任何一个

例如

foo=bar不应该匹配

foo=baz bar应该匹配

bar应该匹配

boo=bar不应该匹配

我认为正则表达式背后的外观非常适合这一点。但是,当我尝试使用(?<!MSVC++ 进行查看时,我得到了一个未处理的异常

中是否支持断言?它在语法上有所不同吗?或者有人可以帮我写这个正则表达式或模仿行为吗?

0 投票
3 回答
317 浏览

java - 如何使用 Look-Ahead 和 Look-Behind 创建自定义边界匹配器?

我想使用Scanner在单词边界处拆分字符串。通常,这将是这样完成的:

问题是我对“单词”字符的定义与标准略有不同,[a-zA-Z_0-9]因为我想包含更多字符并排除_: [a-zA-Z0-9#/]。因此,我不能使用该\b模式。

所以我尝试使用前瞻和后视来做同样的事情,但我想出的并没有奏效:

扫描仪不会使用它在任何地方分割。

是否可以使用前瞻和后视以及如何做到这一点?

0 投票
1 回答
2981 浏览

regex - 正则表达式 - 回顾

我有这样的输入字符串:

正则表达式:

我想得到这样的结果:1234567890。但它不起作用。

虽然,下一个输入字符串:

使用下一个正则表达式:

按预期获得结果:1234567890。

0 投票
1 回答
418 浏览

javascript - 匹配 '.' 的 Javascript 正则表达式 前面没有'\'(后视替代)

我正在用 javascript 制作一个(类似 Excel 的)数字格式化函数。我想使用像“0 000.00”和“000.000.000”这样的模板,它们会产生:

所以我需要匹配'。前面没有'\'。由于 javascript 中没有后视功能,因此拆分模板的整个和小数部分的正则表达式是什么?

不幸的是,这不起作用:-(

0 投票
2 回答
4552 浏览

ruby - 带有通配符的正则表达式负回溯

如果附近没有另一块文本,我正在尝试匹配一些文本。例如,我想匹配"bar"if"foo"不在它之前。我可以在此正则表达式中使用否定查找来匹配"bar"if"foo"立即在它之前:

但我也喜欢不匹配"foo 12345 bar"。我试过:

但在 Ruby 中使用通配符 + 范围似乎是无效的正则表达式。我是不是把问题想错了?

0 投票
1 回答
5093 浏览

regex - 正则表达式匹配正向后视和正向前瞻之间的多行

我需要匹配和之间的内容######现在我的正则表达式我想出了“作品”,但我也在开始和结束时使用新行来获取内容,这让我的生活非常复杂。

这是我的正则表达式:

我想知道我可以只匹配内容,而不匹配新行。

一些示例文本:

0 投票
1 回答
90 浏览

javascript - 如何在 JavaScript 中复制此正则表达式而无需后视?

这是我在 C# 中的正则表达式:

我现在在 JavaScript 中需要这个。我是正则表达式的新手,所以我不知道如果没有后视我将如何做到这一点。任何帮助,将不胜感激。

0 投票
2 回答
704 浏览

python - 带有条件后视的python正则表达式

我正在寻找以第一次出现开始@和结束的子字符串。\s必须@在字符串的开头或空格之后。

示例@one bla bla bla @two @three@four #@five

结果@one, @two, @three@four

我最终得到了这个 re:((?<=\s)|(?<=^))@[^\s]+它在 sublime text 2 中运行良好,但在 python 中返回空字符串。

蟒蛇代码

0 投票
2 回答
399 浏览

regex - 正则表达式 - 匹配数字范围,周围没有数字

所以我有这样的事情:

\b(0?[1-9]|[1-2][0-9]|3[0-6])\b

仅适用于匹配数字 1-36。但我可能会得到类似 S36 的东西,它不会匹配。我不能在数字的任何一侧假设一个干净的单词边界。

我想拥有它,这样它就可以将 1-36 与除两边其他数字之外的任何东西匹配。

我认为这样的事情会起作用,但它没有:

(?<=\D)(0?[1-9]|[1-2][0-9]|3[0-6])(?=\D)

它应该在开始时进行积极的向后看,以确保在数字之前除了数字之外没有任何东西,在数字之后进行积极的向前看,以确保在它之后也是如此。

这样做的正确方法是什么?

0 投票
1 回答
267 浏览

objective-c - 删除出现在块级标记之前的 XHTML 换行符的正则表达式

我需要一个正则表达式来查找<br />块标签之前出现的无关标签,而使所有其他<br />标签保持不变。

这是我正在搜索的文本:

但是,当使用以下 RegEx 时:

它选择第一个<br />标签之后的所有内容,如下所示:

...这不是我想要的。如何修改表达式使其选择<br id="second"/>

注意 <br />标签之外的所有内联标签都在此之前被删除,因此它们不会成为影响因素。另外,我使用的是 Obj-C/Cocoa,所以我不能使用所有那些花哨的 PHP 函数。:)。此外,这将是一个有效的 XHTML 文档。