regex 如何删除一行中除了匹配正则表达式模式之外的所有内容?

2w2cym1i  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(108)

我使用^.*?(\d{3}\D?\d{3}\D?\d{4}).*$并替换为\1$1,以便删除除电话号码外的每一行中的所有内容。示例链接https://regex101.com/r/jK6eD8/3
基本上它的工作原理如下:
第1行:这是废话文本,只有818-333-2323是保持在行
第2行:仅保留以下号码4445553333。
我需要帮助的是找到下面电话格式的匹配正则表达式模式,并删除相应行中的所有其他内容,除了匹配的电话号码,就像上面的链接一样。格式如下。

07123452670
07812 345 931
07412 123466
00447912345188
+971557017442
+971 557 856 832
0414 934 993

字符串
基本上,我需要一个正则表达式来匹配11位数字。(07123456270)
匹配5位数字,后跟空格,后跟3位数字,后跟空格,后跟3位数字。(07812 345 931)
匹配5位数字,后面是空格,后面是6位数字(07412123466)
匹配14位数(12345678901234)
匹配一个+号,后跟12位数字(+971557017442)
匹配+后跟3位数字,空格,后跟3位数字,空格,再加3位数字(+971 557 856 832)
最后一个,4位,空格,3位,空格,3位。(0414 934 993)

g6baxovj

g6baxovj1#

此正则表达式满足以下要求:第一个月
如图所示:https://regex101.com/r/lY3jW0/1
希望能帮上忙

idfiyjo8

idfiyjo82#

如果你正在分析的文本不包含其他“长”数字,你可以得到数字串,它们之间有可选的空格、句号和破折号。它可以看起来像这样:

^.*?(\d[\d .-]{9,13}\d).*$

字符串
匹配组必须由
1.一个数字,后跟

  1. 9-13个字符,可以是数字、空格、破折号或句号。随后是
    1.最后一个数字。
    不过,这对数字的组成并不严格,因此可能不适合您的需要。但话又说回来,它可能会;)
    谨致问候

相关问题