前面有特定字符串时的匹配字符

matching character when preceded by specific string

本文关键字:字符 字符串 前面      更新时间:2023-09-26

我试图在前面有确切字符串而不是前面的字符串时找到字符。 怎么办?

我有字符串

+1545464454<+440545545454<+210544455454<+75455454545

上面的字符串是带有国际前缀的电话号码,但其中一些前缀和数字之间有 0,我需要将其取出。

我有/('+4|'+44|'+7 ... allprefixes here...)0/g,但这也选择了前缀,我只需要选择0

我在 JavaScript 中

你几乎接近了。只需使用捕获组并替换功能,如下所示。大多数语言都支持捕获组。

/('+(?:4|44|7 ... allprefixes here without `+`...))0/g

重新放置字符串:

$1

'1

如果你使用的是PHP,'K应该可以工作。 'K在决赛中丢弃以前匹配的字符。

'~'+(?:4|44|7)'K0~g'

在javascript中。

> var str = "+1545464454<+440545545454<+210544455454<+75455454545"
> str.replace(/('+(?:44|21|7|4))0/g, "$1")
'+1545464454<+44545545454<+21544455454<+75455454545'

如果你的语言支持回溯,你可以按照以下正则表达式中的使用方式使用它

/(?<='+(4|44|7))0/g

Javascript不支持它。所以你需要使用这样的东西

str.replace(/('+(4|44|7))0/, "$1");