问题标签 [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.
regex - 正则表达式:如果 KeyWord2 在同一个字符串中,则选择 KeyWord1
我正在尝试根据字符串中是否存在 KeyWord2 来捕获 .NET 正则表达式引擎中的KEYWORD1 。到目前为止,我正在使用的积极的环顾解决方案:
仅当KeyWord2位于字符串中 KEYWORD1后面的任何位置时才捕获KEYWORD1。如何在正则表达式中优化它,以便它捕获字符串中KEYWORD1的所有实例,尽管 KeyWord2 的位置在前面、后面或两者兼而有之?
我真的很感激一些见解。
谢谢你
regex - 多个匹配正则表达式正前瞻
我正在努力为我的抓取后端创建一个正则表达式模式。我想创建一组日间菜单(周一至周五)。对于每场比赛(天),我想保持日期和列出的饭菜。到目前为止,我已经创建了:
我的模式的问题:
- 我无法创建不包括第二天日期的模式
- 当日期包含在上一场比赛中时,上述问题会导致问题
- 我不知道如何表示 Friday (X atm) 字符串的结尾
编辑:它适用于 Javascript
先感谢您!
python - 在字符前提取单词
我正在尝试提取Y
边界分隔之前的任何单词。因为我试图将每一行视为使用(?m)
标志的单独记录并尝试捕获\w+
前瞻\s+Y
,但我只能打印第一场比赛,而不是第二场比赛(IMP1
)。
当前徒劳的尝试:
预期结果是:
javascript - 两条不同的正则表达式行之间的区别
为什么第二行不返回true
python-3.x - 正则前瞻 (AND) 和 {e=<3} 的正则表达式模糊搜索问题
我对 Python 正则表达式模糊搜索有疑问。
这是有效的:
这不起作用(t
从中删除Chattanooga
):结果None
我在这里做错了什么?
看起来它是带有积极前瞻和边界一词的东西。
注意:这只是一个让它工作的简单示例。我的现实是一个更复杂的工作的一部分。
另外,我是否需要指定每个正则表达式项目(nixon
,chattanooga
)的模糊性,或者是否可以同时为两者指定模糊性,例如((?=.*\bnixon)(?=.*\bchattanooga\b)){e=<3}
java - Java 正则表达式正面预测但仅匹配唯一字符?
我正在尝试将字符串输入与以下条件匹配:
- 第一个字符是唯一的小写英文字母
- 接下来的字符是表示从 1500 到 2020 的当前年份
- 下一个字符只能是 10 或 100 或 1000
- 最后一个字符将是数字 0 到 9
我创建的我认为大部分正确的正则表达式字符串是有解释的:
有没有一种简单的方法来更新我的正则表达式,以便我只能检测到唯一的连续字符?
javascript - 我的正则表达式 /(?=^[az]+\d{2,})(?=\w{5,})/ 模式有什么问题?
此正则表达式必须匹配长度超过 5 个字符、不以数字开头且具有两个连续数字的密码。
所有测试用例都通过了正则表达式测试。
我的正则表达式是/(?=^[a-z]+\d{2,})(?=\w{5,})/
我必须使用两个积极的前瞻来解决这个问题才能通过测试。
但是 asr1on11aut 没有通过测试。为什么?
regex - 如何在没有积极前瞻的情况下重写正则表达式?
由于正前瞻( ),Rust 的默认创建[^a-z0-9%*][a-z0-9%]{3,}(?=[^a-z0-9%*])
不支持正则表达式:regex
?=
重写或使其工作的最佳方法是什么?
我找到了fancy-regex
crate,但我想避免只为一个缺失的功能使用两个 crate(或者更喜欢花哨而不是默认)。
PS。这里至少是一个预期匹配示例。
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
是由于跟随.
而发现的,它是不正确的。
regex - 积极的前瞻有效,而消极的后瞻则无效
假设我想匹配这样的句子:
家在身后,世界在前!
这边走:
这似乎工作正常。(见 regex101)
现在假设我想排除“家”和“世界”这两个词以相反顺序出现的句子:
世界在身后,家在前!
我试过这个(regex101):
这个不行... :-(
谁能解释一下如何通过消极的后视或其他方式来实现它?...