问题标签 [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.
java - 带有子正则表达式的前瞻
我有一些数据(准确地说,这些数据来自 Windows 注册表),如下所示:
我需要从中提取路径,所以我使用这样的正则表达式:
但它不起作用,据我了解,因为环视是原子的。到目前为止,我可以使用类似的东西:
捕捉到了什么
我的问题是 - 这是否可以一次性提取路径?(这意味着不使用两个正则表达式)
regex - 前瞻与后瞻
我很难理解“向前看”和“向后看”的概念。例如,有一个字符串“aaaaaxbbbbb”。如果我们看“x”,向前看是否意味着将“x”看向“bbbbb”或“aaaaa”?我是说方向。
php - 正则表达式中的前瞻、后视条件
以下示例是关于使用前瞻断言作为条件的。我在 PHP 手册中找到它:http ://www.php.net/manual/en/regexp.reference.conditional.php
这是关于这个正则表达式的描述:
条件是一个肯定的前瞻断言,它匹配一个可选的非字母序列,后跟一个字母。换句话说,它测试主题中是否存在至少一个字母。如果找到一个字母,则将主题与第一个选项进行匹配;否则它与第二个匹配。此模式匹配 dd-aaa-dd 或 dd-dd-dd 两种形式之一的字符串,其中 aaa 是字母,dd 是数字。
谁能告诉我为什么我们在这个例子中使用前瞻断言作为条件?为什么我们不使用lookbehind assertion?当它们被用作这样的条件时,我会感到困惑,因为我不知道它们如何匹配主题字符串。提前致谢!
php - preg_split 在项目之前的行
我正在创建自动电子邮件回复,但我不想在回复中显示原始电子邮件。电子邮件中有一行必须在上面回复。但是电子邮件程序会在此行之前添加一行,例如“2012 年 8 月 21 日,晚上 11:30,大卫写道:”。
我正在使用此代码将响应分成两部分。它只是无法正常工作。
它正在拆分的电子邮件正文是
我想要做的是在 --- ABOVE THIS LINE --- 位上方的内容处拆分。换句话说,我想删除“On Wed, Aug 22...”这一行。我认为并非所有的电子邮件程序都设置了这条线,如果它们这样做了,它们的做法会有所不同。在此示例中,电子邮件程序实际上也添加了一个空行。
xml - 正则表达式匹配不包含其他标签的 xml 标签
假设我想像这样查找 XML:
我不想像这样匹配 XML:
也就是说,我正在寻找Address
节点不包含标签Number
的地址。
我试过这样的模式
或者
但我不太明白:-(
有任何想法吗?
regex - 匹配“/”或字符串结尾的正向前瞻
我正在尝试进行积极的前瞻来匹配给定 URL 中的对象 ID,而不管该对象 ID 在 URL 中的位置。这个想法是匹配直到一个 '/' 或字符串的结尾。以下是一些示例字符串(粗体是我要匹配的 ID):
- /objects/ obj_asd-1234-special
- /objects/ obj_xyz-15434 /成员
- /objects/ obj_aasdfaeastd-15d44 /other/asdf
使用这个: objects/obj_(.+?)(?=/) 匹配后两者,因为它们都有一个斜杠。我读到前瞻支持正则表达式作为匹配字符,所以我尝试了这个 objects/obj_(.+?)(?=(/|$)) 无济于事。有什么想法吗?
regex - 我在 GNU sed 中的前瞻正则表达式有什么问题?
这就是我正在做的(简化示例):
我试图把bar
不以 . 开头的每一行放在前面foo
。这是错误:
怎么了?
.net - 解析逗号不被括号包围
输入是以逗号分隔的字段列表。
这是一个例子。
问题是某些“字段”在方括号中指定了参数,并且这些参数也有逗号。
我可以用什么正则表达式来打破像逗号这样的字符串,只有当它们在括号之外时。我希望最终结果是
php - 有效地删除可能不包含特定单词的子字符串 -
我尝试使用 php 将一些可怕的无效 html 代码映射到我以后需要的 xml 结构。这工作得很好,但总有一些我无法处理的部分。所以决定是,只删除该代码,以便 xml 保持有效。这就是它的样子。
所以目标是找到一个解决方案(可能是正则表达式,但我愿意接受任何解决方案)来删除“无法解析的其余部分”。
我尝试在这个正则表达式中使用 preg_replace
它工作得很好,完全匹配我想要在 $1 中拥有的部分,最后一个 和 之间的所有东西,但是由于 xmls 非常大,计算只是在几毫秒后崩溃。我知道正则表达式在做负前瞻方面不太好,但我不认为它那么糟糕。
所以需要一个更有效的解决方案。不幸的是,我不能使用 strrpos,因为在
c# - 正则表达式前瞻 - 单独的部分
假设我有一个包含以下(两个)部分的文本:
我只想匹配第 1 节中的项目,例如 111、222 和 333。我尝试过类似的方法:,\d+,.*(?=Section2)
但是,这当然匹配第 2 节之前的所有内容,我不知道如何告诉它匹配不同的组。请注意,Section1 可以包含比上例中更多的项目。
编辑:我现在得到我想要的 ,\d+,(?=.*Section2)。