问题标签 [regex-lookarounds]
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 - Perl 正则表达式“非”(负前瞻)
我不太确定这种正则表达式的正确措辞是什么,但基本上我想要做的是匹配任何以“/”开头但后面没有“bob/”的字符串,例如.
所以这些会匹配:
但这些不会
我确信答案非常简单,但是我很难在任何地方搜索“regex not”。我敢肯定,对于我想要的东西,有一个更漂亮的词会带来好的结果,但我不确定它会是什么。
编辑:我已更改标题以指示我正在寻找的正确名称
java - 带有负前瞻的 Java 正则表达式
我在用 Java 编写正则表达式来解析日志文件中的信息时遇到了一些麻烦。
我有一个字符串,其中结构“timeinstant:一些带有任何字符的字符串”重复了 1 到 N 次。
timeinstant 的格式为“dd/mm/yyyy hh:MM:ss:MMMMMM”(M 为微秒)。
我正在尝试做的是找到传入字符串中包含的最后一个 timeinstant 的微秒。
例如,使用字符串
我想 m.find()
指出"987: pump..."
。为了得到这个,我使用带有前瞻的正则表达式:
"(\\d{3}:)(?!\\d{4}/\\d{2}/\\d{2}\\s\\d{2}:\\d{2}:\\d{2}:\\d{6})"
但是现在m.find()
指向819
(包含在2012/04/02 16:28:51:861819
)。
php - 正则表达式 - 带有惰性限制的负前瞻?
我不是正则表达式专家,但几个小时后,我构建了这个正则表达式:
这是不区分大小写的:
匹配[url=xxxx://yyyy]zzzz[/url]
模式,除非它包含介于and 和之间的<div onclick="unveil_spoiler
字符串。[url=
[/url]
\[url.*?\]
现在我正在尝试添加一个类似的检查,如果它包含介于\[url=
and之间的匹配项,则不返回匹配项\[/url\]
。我尝试了很多方法,但我似乎可以找到一个 100% 有效的方法。
首先,我尝试添加另一个与我的正则表达式中已经存在的非常相似的负前瞻,它部分工作,但是看起来前瞻一直持续到行尾 - 直到最后\[/url\]
- 对于每场比赛,我想要前瞻\[/url\]
像捕获组一样停在第一个。
这是一个用于调试的字符串:
在帖子开头发布正则表达式后,它将完美匹配第一行中的 2 个匹配项。现在我希望它在比赛内部不返回\[url.*?\]
比赛,我试过这个正则表达式:
还有这个:
当匹配中有一个内部时,它不会返回匹配\[url.*?\]
,但是它也会停止匹配它应该(并且作为第一个正则表达式)的第一行(在示例字符串中)的第一个匹配。也就是说,它只会匹配每一行的最后一个有效匹配。
我认为这是先行的问题,它不会在一开始就停止\[/url\]
,有没有办法让它变得懒惰/修复它?
任何帮助表示赞赏。
ruby - Ruby 中具有前瞻功能的正则表达式
我目前的正则表达式战斗是替换字符串中数字之前的所有逗号。然后,正则表达式必须忽略所有以下逗号。我已经在 rubular 上搞砸了大约一个小时,但似乎无法让某些东西发挥作用。
测试字符串...
所需的输出...
所以类似的东西......
为了给你一些背景知识,我正在做一个小项目。我收集的元素主要以逗号分隔,以两位数的年龄开头。然而,有时在年龄之前的标题可能包含逗号。为了保留我稍后设置的结构,我需要替换标题中的逗号。
在尝试堆栈溢出的答案之后......
我仍然有一些问题。不要笑,但这是导致问题的屏幕抓取的实际线......
首先,我在所有这些片段中添加“xx,”,以便我的逗号过滤适用于所有情况,无论是否有文本。其次是实际修复。输出如下...
regex - 为什么这个正则表达式前瞻不起作用?
我正在设计一个正则表达式以在某些 IIS Url Rewrites 中使用。目的是捕获以下网址:
- 不只是根目录中的一个文件(通过包含句点来标识),并且
- 不包含查询字符串,并且
- 不属于一组特定的子目录,特别是“Account”和“Public”
我当前的正则表达式看起来像:
将RegexPal与以下测试集一起使用:
我的正则表达式正确地忽略了前两种情况,但它仍然匹配第三种情况。这里的前瞻有什么问题?
regex - Perl 中带有 * 修饰符的负前瞻断言
如果测试的字符串是 a后跟 任意数量的空格(包括零),然后不跟.<@> *(?!QQQ)
<@>
QQQ
然而,如果测试的字符串是<@> QQQ
正则表达式匹配。
我不明白为什么会这样,并希望在这件事上提供任何帮助。
这是一个测试脚本
这打印
我本来希望第一行是something <@> QQQ --> something at w/ QQQ
.
regex - hgignore 中奇怪的负前瞻处理
在一个巨大的源代码树中,我希望 Mercurial 只跟踪一个子文件夹。
在任何像样的正则表达式工具(Regex Coach,regexpal.com)中,以下内容绝对足够(并且可以理解)
同时 .hgignore 坚持
一旦我将斜线放在前瞻组中,就什么都没有通过。
在称这是一个错误(也许是另一个本土的正则表达式解析器?)之前,我问了集体智能:-)
关于 hgignore 想要做什么的间接线索的学分
regex - 使用正则表达式前瞻,egrep
如果您的文件包含
为什么会egrep '(?=apples)app' file
不接任何线路?
在 MAC 上使用 egrep 2.5.1
javascript - 适用于 Chrome 和 Safari 的正则表达式负前瞻
我需要匹配 Safari 浏览器,而不是使用一个正则表达式的 Chrome 浏览器。我通常对正则表达式没有问题,但消极的前瞻让我很困惑。
无法弄清楚为什么会返回true
。
java - Java 正则表达式:负前瞻
我正在尝试制作两个匹配 URI 的正则表达式。这些 URI 的格式为:/foo/someVariableData
和/foo/someVariableData/bar/someOtherVariableData
我需要两个正则表达式。每个都需要匹配一个,而不是另一个。
我最初想出的正则表达式分别是:
/foo/.+
和/foo/.+/bar/.+
。
我认为第二个正则表达式很好。它只会匹配第二个字符串。然而,第一个正则表达式匹配两者。所以,我开始(第一次)用消极的前瞻来玩。我设计了正则表达式/foo/.+(?!bar)
并设置了以下代码来测试它
而且,当然,他们俩都决心true
.
有人知道我在做什么错吗?我不一定需要使用负前瞻,我只需要解决问题,我认为负前瞻可能是一种方法。
谢谢,