我想捕获字符串中任何位置出现的数字,并将其替换为“(.+)”。
但我只想捕获那些具有偶数个的数字%
在他们前面。不用担心周围的字符是否被捕获:我们可以使用捕获组来过滤掉数字。
我无法想出 ECMAscript 正则表达式。
这是操场:
abcd %1 %%2 %%%3 %%%%4 efgh
abcd%12%%34%%%666%%%%11efgh
A successful catch will behave like this:
我尝试过的事情:
如果你已经意识到,第三次尝试就快成功了。唯一的问题是在游乐场的第二行。
其实我想表达的意思是:
如果数字前面有偶数个则匹配该数字%
s AND 以下任一条件为真:
- 上面的整个表达式前面是nothing[缺乏(未消耗或其他)特征]。
- 上面的整个表达式前面有一个除
%
.
有没有办法匹配absence一个角色的?
这就是我试图使用的方法\0
在第三次尝试中。
您可以使用(?:[^%\d]|^|\b(?=%))(?:%%)*(\d+)
作为一种模式,您的号码将存储到第一个捕获组中。这也处理前面带有零%字符的数字。
这将匹配偶数个 % 符号,如果它们前面有:
- 既不是 % 也不是数字(所以我们不需要捕获 % 之前的最后一个数字,因为这不适用于像这样的链
%%1%%2
)
- 字符串的开头
- 对于上面提到的链,单词边界(因此任何单词字符)
你可以看到它的实际效果here https://regex101.com/r/wG6uR1/2
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)