regex 当两个特殊字符在一起时查找和替换[closed]

gywdnpxw  于 2022-12-14  发布在  其他
关注(0)|答案(3)|浏览(125)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题吗?**通过editing this post添加详细信息并阐明问题。

2天前关闭。
Improve this question
我试图删除字符串中的*|,如果*|多次出现,我想全局删除。
输入:C1*12.58|*|*|

所需输出:

C1*12.58

我试探着:

ip.replaceAll("*|","")

但是在我的系统中不起作用。有没有其他的选择。我已经搜索过了,但是我找不到一个正则表达式来替换这两个特殊的字符。

pwuypxnk

pwuypxnk1#

当涉及到重叠时,lookahead会有所帮助。

console.log('C1*12.58|*|*|'.replace(/\|(?=\*)|\*\|/g, ''))

它要么匹配一个|if followed by*or*|-See this demo at rege101
或者使用非捕获组匹配|repeat*|\|(?:\*\|)+

ikfrs5lh

ikfrs5lh2#

如果我没理解错的话,您希望删除所有出现的| * 表示字符串的输出为“C112.58|而不是“C112.58”
以下正则表达式语句生成“C1*12.58|“:

let result = "C1*12.58|*|*|".replace(/\|\*/g, "");
zzwlnbp8

zzwlnbp83#

这对你来说是可行的。你需要转义特殊字符,如 * 和|。

let result= 'C1*12.58*|*|'.replace(/\*\|/gm,"")

相关问题