问题标签 [positive-lookahead]

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

r - 正则表达式在选择中包含 Lookahead 字符串

我正在尝试从大量回声报告中提取特定类型心脏功能障碍(舒张功能障碍)的程度( Mild/ Moderate/ )。Severe

这是带有 2 个回声报告的示例 excel 文件的链接

线条通常这样表达:“轻度LV 舒张功能障碍”或“轻度舒张功能障碍”。在这里,“温和”是我要提取的。

我写了以下模式:

现在,让我们看看结果(记住我想要“轻度”部分而不是“LV”部分):

正如您在“轻度舒张功能障碍”之类的字符串中看到的那样,模式正确选择了“轻度”,但是当涉及到“轻度 LV 舒张功能障碍”时,模式选择了“LV”,即使我已经在lv内部引入了一个积极的前瞻(?= ( lv)?)结构。

有人知道我在做什么错吗?

0 投票
1 回答
35 浏览

regex - postgres 正则表达式积极前瞻未按预期工作

我想以以下模式在文本中捕获标记:

前 2 个字符是字母并且是必需的,以 [AZ] 或 [AZ][0-9] 结尾,这是可选的任何介于两者之间的字符。

例子:

AA123123A1

AA123123A

AA123123123

我想在第 1 组中匹配并捕获以 ([AZ][AZ]) 开头,在第 3 组中以 [AZ] 或 [AZ][0-9] 结尾,然后在第 2 组中的所有其他内容

例子:

AA123123A1 => [AA,123123,A1]

AA123123A。=> [AA,123123,A]

AA123123123 => [AA,123123123,'']

以下正则表达式在 python 中有效,但在 postgres 中无效。

regex='^([A-Za-z]{2})((?:.+)(?=[A-Za-z][0-9]{0,1})|(?:.*))([A-Za-z][0-9]{0,1}){0,1}$'

在 Postgressql 中

结果:

{AA,2311121A1,""}

我正在尝试探索为什么积极的前瞻行为与 python 不同,以及在这种情况下如何在 Postgres 中进行积极的前瞻工作。

0 投票
2 回答
54 浏览

python - 在非固定长度表达式之后的空间上拆分句子

给定以下文本:

我需要:

我试过这个但它不起作用:

我得到的结果是这样的:

0 投票
0 回答
5 浏览

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

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

为了显示:

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

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

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

我希望它是“狗狐狸

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

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

谢谢