问题标签 [positive-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 投票
2 回答
77 浏览

python - 使用正则表达式创建具有正向回溯的字典列表

我正在尝试使用正则表达式肯定后向创建字典列表。我尝试了两种不同的代码:

变体 1

变体 2

期望的输出

问题/问题

在这两种情况下,我都无法消除子字符串“-”。

使用正向后视(?<= - )会使我的代码出错。

任何人都可以帮助确定我的错误吗?谢谢。

0 投票
2 回答
32 浏览

grep - 为什么 PCRE grep 将正斜杠视为空格?

在 bash 上,我试图在空格(Afrom File A.jpg)之后立即获取大写字母。

这是一个负前瞻(?!,应该在空格之后返回任何大写字母。所以,它应该只返回A。但是,它返回所有大写:

似乎将正斜杠视为空格?为什么?我怎样才能得到最后一个A

0 投票
0 回答
18 浏览

regex - VBA语言中的正则表达式正向回溯

我想在 VBA 语言中运行 regEx positive lookbehind,但它在 VBA 语言中不受支持。我要运行的进程是(?<=src="")[\w-.]+(?=/)?

我怎样才能在这里写(?<=src="")

示例:https ://regexr.com/65cmi

0 投票
1 回答
33 浏览

javascript - JS 正则表达式正面向后看不匹配

这是我要匹配的字符串和句子(提取)。

这是我的代码的两个版本。当我在各种正则表达式检查网站上签到时,它会给出所需的匹配。但是当我在浏览器控制台中运行时,它给出了 null。我有最新的 Chrome 版本。为什么浏览器控制台不在这里输出匹配项?

0 投票
2 回答
64 浏览

java - 如何选择包含前一个单词的单词?

我正在尝试选择第二行的单词,但首先我需要检查第一行是否有单词,正则表达式示例

这是文本

只是为了澄清我的想法

在此处输入图像描述

为什么这个正则表达式在isaac前面时不起作用select

我该如何解决这个问题?

0 投票
0 回答
31 浏览

python - re.findall 和 re.finditer 运行肯定的lookbehind断言得到不同的结果

下面是代码:

如上图,我在 python3 doc 中搜索,发现 findall 和 finditer 应该都类似于 search 在任何地方检查匹配,而不像 match 只是在开头搜索。因此,我使用这三个进行比较,并运行代码以获得以下结果:

那么我的问题是:

如果我的正面后向断言没有 "+",它更改为r"((?<=\d)\d{3})",那么为了匹配这个断言,结果应该是 1 位后视,再加上 3 位数字。于是:</p>

但是正如我上面显示的代码,我在 r"((?<=\d)\d{3})" 之后添加了 '+',断言变为r"((?<=\d)\d{3}) +",表示结果应该匹配这个(1digt+3digit后面)的情况1次或更长时间,然后结果应该结合[112,345,678],如上图所示:

谁能帮我解释一下为什么断言后面加上'+'会使re.findall与re.search和re.finditer得到不同的结果?

非常感谢

0 投票
1 回答
21 浏览

regex - 替代积极的后向正则表达式

我正在使用 Prism.js 进行语法突出显示,并且我有一个用于检测 Kotlin 中缀函数(?<=\w\s)(\w+)(?=\s\w)( https://regex101.com/r/wVSO6G/1 ) 的正则表达式,该函数使用积极的前瞻性和积极的前瞻性,但这确实不适用于破坏我整个网站的 Safari 浏览器。
我已经看到了涉及使用匹配器的替代方案,但我没有该选项,因为我只能提供正则表达式,例如:

是否有替代方案可以在 Safari 上使用?

0 投票
0 回答
5 浏览

javascript - Javascript 正则表达式逻辑 - 向后看和向前看

我正在尝试使用正则表达式在两个单词之间提取字符串。我试图使用积极的前瞻和后视。现在的问题是,关键字在文本中出现多次,因此正向lookbehind 是针对文本中的最后一个关键字。有没有办法通过积极的后视来选择第一个关键字?

为了显示:

var text = "猫鼠狗狐狸鹦鹉马狮子老鼠青蛙鹦鹉鹰"

var selection = text.match(/(?<=mouse ).*(?= parrot)/g);

selection = "狗狐狸鹦鹉马狮子老鼠青蛙"

我希望它是“狗狐狸

关键字可以在文本中多次出现,想要的选择可以随机长等等。我找不到比“给我关键字 1 的第一次出现和关键字 2 的第一次出现之间的所有内容”更好规则。

有没有办法用正则表达式来表达?

谢谢