问题标签 [negative-lookbehind]
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.
python - re.sub() 负向向后看 + 负向向前看
从字符串中删除所有出现的 of '
,除非单词以 s 结尾,如果单词以s'
or结尾,'s
则'
保留在其中。所有其他出现都被删除。
例子:
到目前为止我想出了什么:
这与第一个示例匹配并忽略它。
我有其他问题
c# - 我被困住的正则表达式问题
我必须编写一个正则表达式来匹配模式1-6/2011
。在这种情况下, 之前的数字/
不能大于12
。所以我必须在1-12
.
我写了一个正则表达式:
但是,在这里我也得到了 20-6/2014 作为比赛。
我尝试了消极的后视:
在这里,单个数字没有被识别。
python - 用于解析版本字符串并查看固定宽度的 Python 正则表达式
我正在尝试编写一个 Python 库来解析我们的版本格式字符串。(简化的)版本字符串格式如下:
<product>-<x>.<y>.<z>[-alpha|beta|rc[.<n>]][.<extra>]][.centos|redhat|win][.snb|ivb]
这是:
- 产品,即
foo
- 数字版本,即:
0.1.0
- [可选] 预发布信息,即:
beta
,rc.1
,alpha.extrainfo
- 【可选】操作系统,即:
centos
- [可选] 平台,即:
snb
,ivb
所以以下是有效的版本字符串:
对于所有这些示例,以下正则表达式都可以正常工作:
但是问题出现在这种类型的版本中(没有“额外”的预发布信息,但有操作系统和/或平台):
使用上面的正则表达式,对于字符串 #8,在预发布的额外信息中而不是组redhat
中被拾取。pre_x
os
我尝试使用后视来避免选择 os 或平台字符串pre_x
:
那是:
如果 Python 的标准模块re
可以接受可变宽度后视,这将正常工作。我宁愿尝试坚持标准模块,而不是使用正则表达式,因为我的库很可能被分发到大量机器上,我想在这些机器上限制依赖关系。
关于如何实现这一目标的任何想法?
我的 regex101 链接:https ://regex101.com/r/bH0qI7/3
[对于那些感兴趣的人,这是我实际使用的完整正则表达式:https://regex101.com/r/lX7nI6/2]
javascript - What is an alternative method for negative look-behind using ECMAScript in C++?
I have the following text:
CCMRC Version: 00500000
RC Version: 01730000
I want to just get the number for RC Version, not CCMRC. So I want to get 01730000 not 00500000.
I have this regex pattern that should work:
But negative lookbehind I believe is not supported in C++. So does anyone know of another way this can be achieved? Thank you.
html - 查找前面没有的正则表达式模式
我有以下 HTML 文件结构:
并且使用正则表达式,我需要获取每个标题之间的所有内容,直到下一个标题或 hr 标签,如果它是 a in a table。
到目前为止,我已经获得了所有 h2->h2|hr 内容。它是这样的:
如何跳过表中包含的 H2 下的内容?我试过带着消极的表情在后面胡思乱想,但我没有得到任何结果。
感谢您的帮助。
regex - 如何使用负搜索进行正则表达式?
我想在文档中搜索以下字符串
其中子字符串!=“自我”
所以
会通过的。
但
会失败
regex - perl 正则表达式停止从下一个贪婪捕获中获取负面回溯
以 perl v5.22.0 中的这个简单示例为例:
它打印:
但我没想到$data
会改变。我还尝试了一些早期版本的 perl 5.x,结果相同。
相反,我希望这个具有相同正则表达式的字符串会导致替换,但它不会:
我不明白为什么会这样。在任何一个中,星号都应该是贪婪的。我认为$1
将在第一个示例和第二个示例中\n
进行负面的后视组比较。当我使用 perl 时,Regex101 说:bar
baz
量词:* 在零次和无限次之间,尽可能多次,根据需要回馈。
那么在这种情况下会发生什么是它回馈消极的后视?
正如标题所说,真正的问题是我想阻止后视者吞下第二组。不幸的是,它不是一个字母,这只是为了让示例更容易理解。同样在 perl 中,我对负面后视可以做的事情有些限制,例如“可变长度后视未在正则表达式中实现”。如果可能的话,我想要一个与 perl 5.8 兼容的答案。谢谢
regex - XML 日志文件正则表达式
我无法更改的遗留系统每天会输出 5 Gig 的大部分糟糕的 XML 日志,并破坏我的摄取许可证。有 2 类详细错误每分钟发生 1000 多次,但每隔几分钟就有一个真正有趣的条目。我想大大缩短 sed 中的重复条目,并保留有趣的条目不变
所以我需要
1. 正则表达式来匹配 2 类烦人的日志条目中的每一个(例如 ...'decimal'... 和 ...'DBNull'... 但不是偶尔有趣的)。
一个匹配每个烦人的错误类的正则表达式很好,我可以做 2 次 sed 传递
2。我需要一个带有时间戳的捕获组,这样我就可以用一个简洁的版本替换长 XML 行 - 但要使用正确的时间戳,以免丢失保真度。
我已经做到了与捕获创建日期相匹配:
这是接近的,但遭受了一种反向贪婪,我将“十进制”匹配到一个开头的日志语句之前的几个条目已经玩过消极的后视,但只是让自己非常头疼
样本数据
javascript - 如果在括号内,则要排除的 Javascript 正则表达式
我正在尝试在字符 +*() 上拆分表达式字符串,但如果它们不在括号内,我只需要在那里拆分。我正在努力为此任务创建正确的正则表达式。
例子:
我希望这能产生一个数组,例如:
目前我的正则表达式拆分字符 +*()[]
因为我也在方括号上拆分,然后我循环遍历数组并合并括号内的任何内容。我认为这很笨拙,并且想将其全部移入正则表达式。
我正在使用 JavaScript,需要能够支持回 IE8。我还读到了一些关于能够在消极的情况下做到这一点的文章,但我看到 JavaScript 不支持这一点。