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

regex - 正则表达式:如果 KeyWord2 在同一个字符串中,则选择 KeyWord1

我正在尝试根据字符串中是否存在 KeyWord2 来捕获 .NET 正则表达式引擎中KEYWORD1 到目前为止,我正在使用的积极的环顾解决方案:

正则表达式测试链接

仅当KeyWord2位于字符串中 KEYWORD1后面的任何位置时才捕获KEYWORD1。如何在正则表达式中优化它,以便它捕获字符串中KEYWORD1的所有实例,尽管 KeyWord2 的位置在前面、后面或两者兼而有之?

我真的很感激一些见解。

谢谢你

0 投票
1 回答
59 浏览

regex - 多个匹配正则表达式正前瞻

我正在努力为我的抓取后端创建一个正则表达式模式。我想创建一组日间菜单(周一至周五)。对于每场比赛(天),我想保持日期和列出的饭菜​​。到目前为止,我已经创建了:

我的模式的问题:

  1. 我无法创建不包括第二天日期的模式
  2. 当日期包含在上一场比赛中时,上述问题会导致问题
  3. 我不知道如何表示 Friday (X atm) 字符串的结尾

编辑:它适用于 Javascript

先感谢您!

0 投票
2 回答
50 浏览

python - 在字符前提取单词

我正在尝试提取Y边界分隔之前的任何单词。因为我试图将每一行视为使用(?m)标志的单独记录并尝试捕获\w+前瞻\s+Y,但我只能打印第一场比赛,而不是第二场比赛(IMP1)。

当前徒劳的尝试:

预期结果是:

0 投票
0 回答
17 浏览

javascript - 两条不同的正则表达式行之间的区别

为什么第二行不返回true

0 投票
1 回答
81 浏览

python-3.x - 正则前瞻 (AND) 和 {e=<3} 的正则表达式模糊搜索问题

我对 Python 正则表达式模糊搜索有疑问。

这是有效的:

这不起作用(t从中删除Chattanooga):结果None

我在这里做错了什么?
看起来它是带有积极前瞻和边界一词的东西。

注意:这只是一个让它工作的简单示例。我的现实是一个更复杂的工作的一部分。

另外,我是否需要指定每个正则表达式项目(nixonchattanooga)的模糊性,或者是否可以同时为两者指定模糊性,例如((?=.*\bnixon)(?=.*\bchattanooga\b)){e=<3}

0 投票
2 回答
150 浏览

java - Java 正则表达式正面预测但仅匹配唯一字符?

我正在尝试将字符串输入与以下条件匹配:

  1. 第一个字符是唯一的小写英文字母
  2. 接下来的字符是表示从 1500 到 2020 的当前年份
  3. 下一个字符只能是 10 或 100 或 1000
  4. 最后一个字符将是数字 0 到 9

我创建的我认为大部分正确的正则表达式字符串是有解释的:

有没有一种简单的方法来更新我的正则表达式,以便我只能检测到唯一的连续字符?

0 投票
4 回答
130 浏览

javascript - 我的正则表达式 /(?=^[az]+\d{2,})(?=\w{5,})/ 模式有什么问题?

此正则表达式必须匹配长度超过 5 个字符、不以数字开头且具有两个连续数字的密码。

所有测试用例都通过了正则表达式测试。

我的正则表达式是/(?=^[a-z]+\d{2,})(?=\w{5,})/

我必须使用两个积极的前瞻来解决这个问题才能通过测试。

但是 asr1on11aut 没有通过测试。为什么?

链接到问题 - https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/regular-expressions/positive-and-negative-lookahead

0 投票
1 回答
128 浏览

regex - 如何在没有积极前瞻的情况下重写正则表达式?

由于正前瞻( ),Rust 的默认创建[^a-z0-9%*][a-z0-9%]{3,}(?=[^a-z0-9%*])不支持正则表达式:regex?=

重写或使其工作的最佳方法是什么?

我找到了fancy-regexcrate,但我想避免只为一个缺失的功能使用两个 crate(或者更喜欢花哨而不是默认)。

PS。这里至少是一个预期匹配示例

0 投票
1 回答
84 浏览

regex - 如何将前瞻正则表达式拆分为 2 个普通正则表达式?

我有一个前瞻正则表达式[^a-z0-9%*][a-z0-9%]{3,}(?=[^a-z0-9%*])。在我的测试中,它从中提取 4 个子字符串@@||imasdk.googleapis.com/js/core/bridge*.html

  • |imasdk
  • .googleapis
  • .com
  • /core

我需要用 2 个旧的正则表达式重写它,因为我不能使用前瞻(正则表达式引擎不支持)。我已将其拆分为[^a-z0-9%*][a-z0-9%]{3,}and[^a-z0-9%*]并在匹配后检查子字符串中的每个第一个正则表达式匹配。

出于某种原因,它也提取 /bridge.未列出[^a-z0-9%*]并在之后找到的/bridge。那么前瞻是如何工作的:它必须是完全匹配、substr(find结果)还是其他任何东西?这是否意味着在这种情况下,每个结尾字符都不应来自集合a-z0-9%*

在 Rust 中,代码如下所示:

测试输出:

^ 这里你可以看到/bridge是由于跟随.而发现的,它是不正确的

0 投票
2 回答
30 浏览

regex - 积极的前瞻有效,而消极的后瞻则无效

假设我想匹配这样的句子:

家在身后,世界在前!

这边走:

这似乎工作正常。(见 regex101

现在假设我想排除“家”和“世界”这两个词以相反顺序出现的句子:

世界在身后,家在前!

我试过这个(regex101):

这个不行... :-(

谁能解释一下如何通过消极的后视或其他方式来实现它?...