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

regex - 正则表达式:选择不包含 3 个分号的行的行尾字符

我在 EditpadLite 中使用了启用 Regex 的 Search&Replace 功能。我的文档看起来像这样

问题; 每行应包含 4 ;符号,因此第 3 行和第 6 行需要在行尾附加分号,方法是将 \n 替换为 ;\n。我试过了:

选择前面没有正好包含 3 个分号的行的行尾字符。但是,这不起作用,因为我认为分号不是连续的。有替代方案吗?

0 投票
2 回答
8527 浏览

javascript - Javascript正则表达式:找到一个不跟空格字符的单词

我需要 javascript 正则表达式,它将匹配不跟空格字符并且之前有 @ 的单词,如下所示:

@bug - 找到“@bug”,因为它后面没有空格

@bug 和我 - 什么也没找到,因为“@bug”后面有空格

@bug 和 @another - 仅查找“@another”

@bug 和 @another 什么都找不到,因为这两个词后面都跟有空格。

帮助?补充:字符串是从中获取的,FF 将它自己的标签放在它的末尾。虽然我基本上只需要最后一个以@开头的单词,但不能使用$(end-of-string)。

0 投票
2 回答
10903 浏览

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

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

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

我正在使用 regExp 对象。

0 投票
2 回答
2328 浏览

php - 正则表达式:向后看以避免奇数个连续反斜杠

我有用户输入,其中方括号内允许使用一些标签。我已经编写了正则表达式模式来查找和验证括号内的内容。

在用户输入字段中,左括号([)可以用反斜杠转义,反斜杠也可以用另一个反斜杠(\)转义。我需要后视子模式以避免在打开括号之前出现奇数个连续反斜杠。

目前我必须处理这样的事情:

它工作正常,但问题是这段代码仍然匹配括号前面可能的连续反斜杠对(即使它们是隐藏的),并且向后看只是检查是否有另一个单个反斜杠附加到对(或直接到左括号) . 如果可能的话,我需要在后视组中避免它们。

例子:

我使用 PHP PCRE

0 投票
1 回答
78 浏览

regex - 使用正则表达式筛选源代码树以查找函数调用的出现

与其在VS2010中打开一堆解决方案文件然后搜索函数调用的出现/引用,我宁愿只用正则表达式grep。我可以分两遍执行此操作-首先对所有出现的 进行 grep MyFunction(),然后删除它在被注释掉的行上的所有出现(注意:我意识到这不处理块注释,现在还可以) .

我想看看是否有更好的方法来做到这一点,regular-expressions.info有一个有趣的教程,关于正面和负面的前瞻和后瞻。

使用我最喜欢的在线正则表达式评估器,我处理了以下示例:

但惨败。我什至不确定我正在尝试做的事情是否可以通过负面的后视来实现。这是我认为可能有效的方法:

但它不匹配......有人可以在这里启发我吗?

0 投票
2 回答
422 浏览

regex - 正则表达式 - 负前瞻

我正在尝试使用 Perl 的负前瞻正则表达式从目标字符串中排除某些字符串。请给我你的建议。

我试图获取没有-sm、-sp 或-sa 的字符串。

正则表达式:

输入

预期输出:

但是,我在下面得到了这个实际输出:

请帮我。

ps:我使用Regex Coach 来可视化我的结果。

0 投票
5 回答
1443 浏览

regex - Perl 正则表达式负回顾

试图在正则表达式处理中围绕前瞻后视。

假设我有一个列出 PID 和其他内容的文件。我想构建一个正则表达式来匹配 PID 格式\d{1,5}但这也排除了某个 PID。

在这个正则表达式中,我尝试使用(?<!TO_EXCLUDE)构造将数字匹配与排除相结合。这行不通。

示例文件:

如果有人能指出我正确的方向,将不胜感激。

也有兴趣了解在这种情况下这种消极的后视是否是最有效的。

0 投票
1 回答
125 浏览

regex - 匹配一个词,但不在评论中

我正在尝试匹配一个单词,但不是在它前面有评论(/*而不是后面*/)的情况下。到目前为止,我一直在尝试使用否定的前瞻断言来实现这一点,但没有成功。这是否可以通过消极的前瞻或消极的后视断言来实现,或者这是徒劳的努力?

0 投票
4 回答
191 浏览

javascript - Javascript Regex - 假装后视的意外行为

我正在尝试编写一个小部件来整理来自多个来源的推文作为练习(类似的东西存在这里,但是a)那里提供的列表选项没有加载我的任何列表,并且b)这是一个有用的学习练习!)。作为其中的一部分,我想编写一个正则表达式,用指向用户 Twitter 页面的链接替换 ​​Twitter 句柄('@' 后跟字符)。但是,我不希望出现误报,例如,推文中的电子邮件地址。

因此,例如,替换应该发送

在这个问题的指导下,这表明我需要某种方式在 Javascript 中复制负面的后视,我编写了以下代码:

但是,在触发三元运算符的最后部分的情况下,$0 包含“@”符号。这出乎我的意料——因为 '@' 没有括在括号中,我希望 $0 匹配 '([^\s,.;:]*)' - 即 Twitter 用户的用户名(之后,和没有,'@')。我可以通过使用 $0.substring(1) 获得所需的功能,但我想进一步了解。

有人可以指出我误解了什么吗?我对正则表达式很陌生,从来没有用 Javascript 编写过它们,也没有使用过负面的后视。