问题标签 [regex-look-ahead]

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 回答
40 浏览

regex - 匹配特定单词及其后成对括号之间的字符串,支持单个嵌套级别,但有异常

我对正则表达式匹配有疑问。我需要在字符串中找到特定的子字符串。一些例子:

所以,我有这个规则表达式:IF\[([^\[\]]*)\]. 它在案例 2 和 3 中工作正常,但在案例 1C[0]中包含方括号。

我试图以这种方式更改我的正则表达式:IF\[((?!IF))\]和 finaly IF\[(.+(?!IF))\]。我添加了一个展望,说它“保留不包含另一个 IF 的 IF”。现在它适用于案例 1 和 3,但案例 2 返回整个字符串。

如何创建正确的外观来解决这个问题?我需要在可以是整个字符串的字符串中找到最内部的 IF。

我已经在这个答案中尝试了解决方案:https ://stackoverflow.com/a/32747960/5731129

0 投票
1 回答
46 浏览

python - 正则表达式 - 如果组有前缀则忽略

我正在尝试以自由文本形式捕获 8 位电话号码。如果之前出现了特定的字符串,则应该忽略它。

我的正则表达式:

捕捉:

不捕获:

我正在尝试使用负面的外观,如下例所示:

但只有当正则表达式没有后续组时,上述方法才有效。

0 投票
1 回答
31 浏览

regex - 在第一个前瞻匹配中停止,有两个选项

我正在尝试生成一个正则表达式,它抓取“ < ”和“ > ”之间的所有内容,如果找到“ | ”则停止。例如:

这是链接< stackoverlflow.com>
这是链接< https://stackoverlflow.com>
这是链接< stackoverlflow.com| 点击这里>
这是链接< https://stackoverlflow.com| 点击这里>

我尝试过这样的事情,但它不起作用:((?!<)[^\s]+((?=>)|(?=\|)))
你能帮我吗?

0 投票
1 回答
56 浏览

regex - 正则表达式排除所需字符串周围的字符串

HTML 代码之间:

...<div class="..."><a class="..." href="...">I need this String only</a></div>...

如何编写正则表达式(对于使用 Perl RegEx 的 Rainmeter),以便:

- 需要的字符串"I need this String only"被分组以被提取,

- HTML 链接标签<a>...</a>可能 不存在或存在,并且可以存在于所需字符串之间,也可以存在多次。

我的尝试:

(?siU)<div class="...">.*[>]{0,1}(.*)[</a>]{0,1}</div> 其中:

当然,这不能按我的意愿工作, 这会在我的字符串之前提供带有 HTML 链接的输出, 所以我的问题是

如何编写更好的(和有效的)正则表达式?

0 投票
1 回答
25 浏览

javascript - 正则表达式环视导致紧随其后的组不匹配但否则匹配

这是我在 SO 上的第一篇文章,所以提前感谢大家;这对我非常有帮助,我很高兴有一天我可以从新手变成在这里回答一些问题!但在那之前:

在上面的 RegEx 中,我试图在 8 月 6 日仅匹配“6”,并故意用字符串中的另一个数字对其进行测试,以确保它不会被拾取。我很难理解为什么前瞻导致不匹配,但是如果我们删除前瞻,它会匹配“8 月 6 日”。

/((Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[a-z]{0,6})\s(\d){1,2}/

我的逻辑是,我在 8 月到 6 日之间对月份格式和空间应用了前瞻。下面的组(也就是(\d){1,2}比赛的结果)不会吗?

任何关于我为什么要考虑这个错误的指针将不胜感激!

0 投票
1 回答
103 浏览

javascript - 正则表达式匹配以提取以空格结尾的文本

请帮忙,

我需要从长句中提取文本

正文如下:

我想从上面的文本中提取金额,我使用了正则表达式

什么都没有……我试过了

(?<=Current Balance:).+(?=Impaired)并显示结果: AED2,137,381.99 8/9/2020

所以我只想注意以空格结尾的文本(日期不是静态的),有人可以帮忙吗?

0 投票
1 回答
84 浏览

regex - RegEx for excluding a match with prefix

I first wanted to only match the first instance, but soon realized that is not possible. The tool I'm using only uses RegEx so I have no options as well.

Basically I got a text with HTML tags in it and I want to match the first paragraph's tags without the following tags. For example out of this:

<p>erkfoijwdocndoufhwroguh</p><p>pijgoijkuohuhogiougwtg</p><p>pijgoijkuohuhogiougwtg</p><p>pijgoijkuohuhogiougwtg</p>

I want to match the first <p></p> and nothing else. So I figured I could exclude the tags that have a tag right next to them using negative lookahead. As in:

(?!>)(<|<\/)p>

But for some reason this still matches every <p> and </p> tag instead of leaving out those that have another tag before them. Any suggestions?

Edit to add: I only need to match the tags, not the text inside the tags. And lookbehind doesn't work with the tool I'm using. It seems that everything that works here, works also in my tool.

Second edit: I solved my problem, but I'm leaving the question open since the solution wasn't an answer and this seems like an interesting question and I might bump into similiar problem in the future. Basically if someone figures out how I can refer to <p> that doesn't have a > before it but also include the first </p>, I'd like to hear it.

0 投票
1 回答
571 浏览

python - 在 python 中使用正则表达式解析 Web 日志文件

我有一个包含数字主机数据和字母数字用户名数据的网络日志文件。以下是日志文件中的几行:

有时,用户名会替换为连字符。

我只想提取第一个方括号之前的数据,然后将其转换为字典列表。例如:

这是我使用的正则表达式:

正则表达式找不到任何匹配项。只有个别的正则表达式有效。我的意思是,如果我注释掉用户名字典的正则表达式,主机字典的正则表达式将起作用,反之亦然。

我究竟做错了什么?

0 投票
3 回答
65 浏览

regex - 如果匹配某些条件,如何在正则表达式中选择特定字符

我试图-从字符串中找到一个破折号,如果它符合某些条件并且只有破折号应该由正则表达式选择。

应该选择的案例 -

  1. 如果双方都有空间。例子:test - dash
  2. 如果右手边有空间。例子:test- dash
  3. 如果双方都没有空间。例子:test-dash

不应该选择的情况

  1. 如果右侧没有空间,但左侧有空间。例子:test -dash

这是我的进步

在此处输入图像描述

如屏幕截图所示,我可以使用 来实现positive-lookbehind,但这并未得到广泛支持。

所以,我的问题是,是否有另一种方法可以在不使用的情况下实现这一目标positive-lookbehind

谢谢。

0 投票
1 回答
70 浏览

regex - 正则表达式忽略以特定模式结尾的字符串

我正在尝试编写正则表达式,它应该忽略任何以 _numbers 结尾的字符串,例如 (_1234)

像下面

我正在尝试使用如下所示的前瞻正则表达式,但它匹配所有内容。有人可以帮助我如何实现这一目标吗?