问题标签 [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 回答
2586 浏览

ruby - Ruby 中的正则表达式否定后视似乎不起作用

制作参数解析器。我想将字符串拆分为分隔符所在的数组,", "除非前面有"|". 这意味着字符串

应该导致

我正在尝试使用这个正则表达式:(?<!\|),它适用于http://regexhero.net/tester/但是当我尝试

在红宝石中,我收到一个错误:undefined (?...) sequence: /(?<!\|), /

0 投票
2 回答
2134 浏览

regex - php preg_replace 正则表达式前瞻

我正在尝试使用 preg_replace 在我的 html 侧面替换 & 符号,但问题是它破坏了内联 javascript && 或 javascript url,如 ?page=test&id=1

现在我有这个代码,它可以工作

当空格在左边或右边时替换 & 号。当连续 2 个&符号(用于 javascript)或跟随 html 实体时,不要替换。

但我在这里发现它相当不需要的逻辑。如果它像测试和测试,它也不会替换&符号。

由于我不是正则表达式专家,这花了我很长时间,所以我想我再次在这里寻求帮助。

如果不在 javascript 脚本标签中,那么简单地替换所有 & 符号不是更好吗?我已经尝试过了,但没有真正的成功

有谁知道我如何存档?谢谢

0 投票
5 回答
5054 浏览

regex - 嵌套的正则表达式前瞻和后视

我在正则表达式中的嵌套“+”/“-”前瞻/后视时遇到问题。

假设我想更改'*'字符串中的'%'并且假设'\'转义下一个字符。(将正则表达式转换为 sql 之类的命令 ^^)。

所以字符串

  • '*test*'应改为'%test%',
  • '\\*test\\*'-> '\\%test\\%',但是
  • '\*test\*'并且'\\\*test\\\*'应该保持不变。

我试过:

与上面给出的示例中的“*”匹配的正确正则表达式是什么?

有什么区别(?<!\\(?=\\\\)*)\*(?=(?<!\\)(?=\\\\)*)\*或者如果这些本质上是错误的,那么具有这种视觉结构的正则表达式之间的区别是什么?

0 投票
1 回答
1409 浏览

c# - 带有反向引用的正则表达式正前瞻

我正在尝试构建一个具有语法突出显示的非常具体的编辑器。我已经用正则表达式制作了所有简单的东西,这很简单,但现在我想用正则表达式添加一些高级功能。

在这种情况下,我想知道是否在任何 JumpTo 命令上使用了定义的标签。
例子:

这里的目标是找到被JumpTo (一个或多个)引用的每个Define (Definexxx),可能在定义之前或之后。在另一个步骤中,我还想找到任何JumpTo未引用的任何Define

我已经尝试使用表达式“ Define(?<tag>\d+)(?=JumpTo\k<tag>) ”进行积极的前瞻。我希望它会找到“ Define1 ”,但它没有(无论有没有多行选项)。

这是否可以一步完成正则表达式,还是我应该放弃这个想法而只考虑两步方法?

0 投票
3 回答
226 浏览

php - 正则表达式之间进行选择同时忽略任何 <> 中的所有文本

我有以下两种类型的文本:

类型一:

类型二:

我正在使用 php 和preg_match_all. 我需要一个可以从上面返回一号警官和二号警官的表达式。我使用公司官员< /div>作为第一个主播和< /div>第二个主播,但我无法在所有桌子上的胡言乱语中找到 Keith Dennis。

如何在anchor1 和anchor2 之间返回文本,同时忽略任何括号内的所有文本<>

我看到了这些线程,但无法使他们的解决方案对我有用: RegEx:提取所有内容,直到 X 不在两个大括号之间

一切,但 [ 和 ] 之间的一切

0 投票
1 回答
455 浏览

java - 复杂后视中的无限量词

我在编写这个正则表达式时遇到了很多麻烦:

它在我的正则表达式编辑器(Expresso)和 .NET 环境中运行良好,但在 Java 环境(使用 Eclipse Helios R2 的 JRE 1.6.0.25)中它不起作用,因为该Pattern.compile()方法会引发“语法错误 U_REGEX_LOOK_BEHIND_LIMIT”异常。

那是因为模式背后的外观必须有一个定义的限制(据我所知,这里不允许使用(?<=\s+|^\s*|\(\s*|\.)无限量词,例如*and )。+

我还尝试以这种方式指定重复范围,但没有运气:

那么,我怎样才能编写一个相同的正则表达式,即使在 Java 环境中也能工作呢?我不敢相信这种常见情况没有解决方法....

0 投票
2 回答
402 浏览

regex - 正则表达式条件后向字符匹配

所以我想在字符串中找到字符串“to”,但前提是它是独立的。它可能在字符串的开头,如“to do this”,所以我无法搜索“to”。

我要做的是说,如果“to”后面有一个字符,它不能是\w。我怎么做?

0 投票
5 回答
37098 浏览

regex - 正则表达式 Lookbehind 不适用于量词(“+”或“*”)

我正在尝试在正则表达式中使用lookbehinds,但它似乎没有像我预期的那样工作。所以,这不是我真正的用法,但为了简化我会举一个例子。想象一下,我想在“这是一个示例”的字符串上匹配“示例”。所以,根据我对lookbehinds的理解,这应该有效:

这应该做的是找到“this is an”,然后是空格字符,最后匹配单词“example”。现在,它不起作用,我不明白为什么,在lookbehinds中使用'+'或'*'是不可能的吗?

我也尝试了这两个,它们工作正常,但不能满足我的需求:

我正在使用这个网站来测试我的正则表达式: http: //gskinner.com/RegExr/

0 投票
2 回答
10903 浏览

regex - 回顾 VBA 的正则表达式?

有没有办法在 VBA 正则表达式中进行消极和积极的回顾?

如果字符串以“A”开头,我想不匹配,所以我目前在模式的开头执行 ^A,然后删除 match(0) 的第一个字符。显然不是最好的方法!

我正在使用 regExp 对象。

0 投票
2 回答
99 浏览

regex - 在正则表达式中工作“太好”的积极后视

模式匹配超出预期。如果有人可以解释为什么“地址”是后视的一部分时匹配,以及如何防止这种情况。提前感谢您对此的任何帮助。

图案:

细绳:

结果: