问题标签 [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.
ruby - 除非用 \ 转义,否则 Ruby 正则表达式匹配
使用 Ruby 我正在尝试使用正则表达式拆分以下文本
其中 ~ 或 = 表示匹配的开始,除非它用 \ 转义
所以它应该匹配
然后
然后
我认为以下内容会起作用,但事实并非如此。
什么是更好的正则表达式?
编辑更具体地说,上面的正则表达式匹配所有出现的 = 和 ~
编辑工作解决方案。这是我想出的解决问题的方法。我发现 Ruby 1.8 具有前瞻功能,但没有后瞻功能。所以看了一圈之后,我在 comp.lang.ruby 中看到了这篇文章,并用以下内容完成了它:
c# - 我无法弄清楚的正则表达式问题(消极的后视)
我如何用正则表达式做到这一点?
我想匹配这个字符串:-myString
但我不想匹配-myString
这个字符串中的:--myString
myString 当然是任何东西。
有可能吗?
编辑:
自从我发布了一个问题以来,这里有更多关于我到目前为止所获得的信息:
此正则表达式返回我 3 个匹配项
-string1
:-
和-string2
理想情况下,我希望它只返回-string1
匹配项
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”之后的单词。
regex - ActionScript 3 中的正则表达式:如何排除复杂前缀?
AS3 RegExp 引擎(和基于 ECMAScript 的 JavaScript)不支持复杂的“lookbehind”表达式。(完全支持前瞻表达式。)
例如:
会工作,但是;
在 AS3 中不起作用。
我需要的是匹配一个复杂的前缀,但在最终匹配中排除它。在上面的例子中;我试图在 HTML 文本中获取正文内容,但不是开始和结束正文标签。实际的测试文本如下所示:
regex - 使用 RegEx 提取部分文本
我想使用正则表达式提取文本的一部分。例如,我有一个地址,想只返回数字和街道并排除其余的:
但是大多数时候地址的格式会有所不同。我尝试使用 Lookbehind Regex 并得出了这个表达式:
上面的表达式很好地处理了上面的例子,但是一旦逗号进入文本,邮政编码可以是一个 6 个字符的字符串或两个 3 个字符的字符串,中间有一个空格等等,它就会变得太混乱......
除了后向正则表达式之外,还有什么更优雅的方式来提取部分文本?
非常感谢任何建议或另一个方向的观点。
谢谢!
.net - 帮助正则表达式中的负面回溯
我正在研究一个 ASP.NET 响应过滤器,它在特定情况下重写 URL 以指向不同的域。
因为 ASP.NET 将响应写入分块,所以在页面完全流式传输之前,我的过滤器会被调用多次。这意味着我需要注意每次对 Regex.Replace 的调用都不会双重替换 url(你最终会得到http://foo.comhttp://foo.com/path)。
为此,我尝试对替换使用否定的后向表达式,但它似乎不起作用:
这将创建一个正则表达式,如:
然而,它似乎不尊重后面的样子,我把所有东西都换了。
有任何想法吗?
编辑:当我使用像 Regex Coach 这样的工具对样本数据进行测试时,这个正则表达式效果很好。
编辑2:添加了斜线,它实际上就在那里。
regex - 如何进行非贪婪的多个lookbehind匹配
RegEx2 的期望结果只是 <content2> 但它显然是贪婪的。如何使 RegEx2 不贪婪并仅使用最后一个匹配的lookbehind?
[我希望我已经从 NoteTab 语法正确地翻译了这个。我不做太多正则表达式编码。<prefix>、<content> 和 <suffix> 术语只是用来表示任意字符串。只有“?<=”lookbehind 命令中的“<”才有意义。]
我怀疑这很简单,但经过太多小时的搜索,我放弃了自己解决它。
谢谢您的帮助
艺术
javascript - Javascript 不支持正向回溯
我在.Net中有以下正则表达式
和以下文字
我在正则表达式中指定“Visitors”或“VisitorFromItaly”,然后我得到特定数量的访客数。
我想在 javascript 中执行此操作,但不使用任何 .replace 方法。我只需要一个简单的 javascript 正则表达式。我是 javascript 正则表达式的新手,所以我不知道如何转换它。它说javascript不支持lookbehind,这就是使我的.Net正则表达式工作的原因。
任何帮助,将不胜感激。非常感谢提前!!!
regex - 如何使用lookbehind或lookahead并替换匹配的字符串?
我被困在另一个正则表达式上。
样本输入:
我想写正则表达式。如果找到单词“description”并且其前面有单词“project”,则在“project description”前面加上“<project>”。
预期输出:
我写了以下正则表达式,n 替换字符串,但它不起作用:正则表达式:((?<=project) description)
和替换字符串:<project_description>$0
使用当前的正则表达式和替换字符串,我得到以下输出:
任何人都可以提出一些建议吗?
**
编辑问题
** 好的,我想我对告诉人们我到底想要什么还不够清楚。
为了使问题更通用和更清晰,我将换一种说法。
如果“y”出现在“x”之后,则<tag>
添加到 xy 之前。
是否可以使用正则表达式来做到这一点?