我尝试在前面有精确字符串而不是前面的字符串时查找字符。怎么做?
我有字符串
+1545464454<+440545545454<+210544455454<+75455454545
上面的字符串是带有国际前缀的电话号码,但是其中一些在前缀和号码之间有0,我需要将其取出。
我有/(\+4|\+44|\+7 ... allprefixes here...)0/g
但这也选择了前缀,我只需要选择0
我在javascript中
答案 0 :(得分:3)
你几乎接近这一点。只需使用捕获组并替换如下所示的功能。大多数语言都支持捕获组。
/(\+(?: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'
答案 1 :(得分:2)
如果您的语言支持lookbehinds,您可以使用以下正则表达式
中使用的语言/(?<=\+(4|44|7))0/g
Javascript不支持它。所以你需要使用这样的东西
str.replace(/(\+(4|44|7))0/, "$1");