问题标签 [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 投票
1 回答
2319 浏览

ruby - 除非用 \ 转义,否则 Ruby 正则表达式匹配

使用 Ruby 我正在尝试使用正则表达式拆分以下文本

其中 ~ 或 = 表示匹配的开始,除非它用 \ 转义

所以它应该匹配

然后

然后

我认为以下内容会起作用,但事实并非如此。

什么是更好的正则表达式?

编辑更具体地说,上面的正则表达式匹配所有出现的 = 和 ~

编辑工作解决方案。这是我想出的解决问题的方法。我发现 Ruby 1.8 具有前瞻功能,但没有后瞻功能。所以看了一圈之后,我在 comp.lang.ruby 中看到了这篇文章,并用以下内容完成了它:

0 投票
6 回答
2555 浏览

c# - 我无法弄清楚的正则表达式问题(消极的后视)

我如何用正则表达式做到这一点?

我想匹配这个字符串:-myString

但我不想匹配-myString这个字符串中的:--myString

myString 当然是任何东西。

有可能吗?

编辑:

自从我发布了一个问题以来,这里有更多关于我到目前为止所获得的信息:

此正则表达式返回我 3 个匹配项 -string1--string2

理想情况下,我希望它只返回-string1匹配项

0 投票
7 回答
82527 浏览

regex - 如何用正则表达式匹配表达式后的第一个单词?

例如,在此文本中:

Lorem ipsum dolor sit amet, consectetur adipiscing elit。Nunc eu Tellus vel nunc pretium lacinia。Proin sed lorem。疯狂的 ipsum。Nunc a libero quis risus sollicitudin imperdiet。

我想匹配“ipsum”之后的单词。

0 投票
3 回答
3483 浏览

regex - ActionScript 3 中的正则表达式:如何排除复杂前缀?

AS3 RegExp 引擎(和基于 ECMAScript 的 JavaScript)不支持复杂的“lookbehind”表达式。(完全支持前瞻表达式。)

例如:

会工作,但是;

在 AS3 中不起作用。

我需要的是匹配一个复杂的前缀,但在最终匹配中排除它。在上面的例子中;我试图在 HTML 文本中获取正文内容,但不是开始和结束正文标签。实际的测试文本如下所示:

0 投票
3 回答
780 浏览

regex - 使用 RegEx 提取部分文本

我想使用正则表达式提取文本的一部分。例如,我有一个地址,想只返回数字和街道并排除其余的:

但是大多数时候地址的格式会有所不同。我尝试使用 Lookbehind Regex 并得出了这个表达式:

上面的表达式很好地处理了上面的例子,但是一旦逗号进入文本,邮政编码可以是一个 6 个字符的字符串或两个 3 个字符的字符串,中间有一个空格等等,它就会变得太混乱......

除了后向正则表达式之外,还有什么更优雅的方式来提取部分文本?

非常感谢任何建议或另一个方向的观点。

谢谢!

0 投票
5 回答
1706 浏览

.net - 帮助正则表达式中的负面回溯

我正在研究一个 ASP.NET 响应过滤器,它在特定情况下重写 URL 以指向不同的域。

因为 ASP.NET 将响应写入分块,所以在页面完全流式传输之前,我的过滤器会被调用多次。这意味着我需要注意每次对 Regex.Replace 的调用都不会双重替换 url(你最终会得到http://foo.comhttp://foo.com/path)。

为此,我尝试对替换使用否定的后向表达式,但它似乎不起作用:

这将创建一个正则表达式,如:

然而,它似乎不尊重后面的样子,我把所有东西都换了。

有任何想法吗?

编辑:当我使用像 Regex Coach 这样的工具对样本数据进行测试时,这个正则表达式效果很好。

编辑2:添加了斜线,它实际上就在那里。

0 投票
3 回答
8306 浏览

regex - 如何进行非贪婪的多个lookbehind匹配

RegEx2 的期望结果只是 <content2> 但它显然是贪婪的。如何使 RegEx2 不贪婪并仅使用最后一个匹配的lookbehind?

[我希望我已经从 NoteTab 语法正确地翻译了这个。我不做太多正则表达式编码。<prefix>、<content> 和 <suffix> 术语只是用来表示任意字符串。只有“?<=”lookbehind 命令中的“<”才有意义。]

我怀疑这很简单,但经过太多小时的搜索,我放弃了自己解决它。

谢谢您的帮助

艺术

0 投票
3 回答
1963 浏览

javascript - Javascript 不支持正向回溯

我在.Net中有以下正则表达式

和以下文字

我在正则表达式中指定“Visitors”或“VisitorFromItaly”,然后我得到特定数量的访客数。

我想在 javascript 中执行此操作,但不使用任何 .replace 方法。我只需要一个简单的 javascript 正则表达式。我是 javascript 正则表达式的新手,所以我不知道如何转换它。它说javascript不支持lookbehind,这就是使我的.Net正则表达式工作的原因。

任何帮助,将不胜感激。非常感谢提前!!!

0 投票
3 回答
1710 浏览

regex - 如何使用lookbehind或lookahead并替换匹配的字符串?

我被困在另一个正则表达式上。

样本输入:

我想写正则表达式。如果找到单词“description”并且其前面有单词“project”,则在“project description”前面加上“<project>”。

预期输出:

我写了以下正则表达式,n 替换字符串,但它不起作用:正则表达式:((?<=project) description) 和替换字符串:<project_description>$0

使用当前的正则表达式和替换字符串,我得到以下输出:

任何人都可以提出一些建议吗?


**

编辑问题

** 好的,我想我对告诉人们我到底想要什么还不够清楚。

为了使问题更通用和更清晰,我将换一种说法。

如果“y”出现在“x”之后,则<tag>添加到 xy 之前。

是否可以使用正则表达式来做到这一点?

0 投票
6 回答
703 浏览

php - 替换所有 *not* 在 " 内的 "\" 字符" tags