Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 需要正则表达式来删除除数字以外的所有内容_Regex - Fatal编程技术网

Regex 需要正则表达式来删除除数字以外的所有内容

Regex 需要正则表达式来删除除数字以外的所有内容,regex,Regex,除了[^0-9\n]之外,我还需要一个正则表达式(但不知道如何制作),它可以捕获像这样的数字模式,“0000000000”或“000-000-0000”中的任何内容,或者基本上可以捕获前面或中间有空格或特殊字符的任何数字 所以任何数字,即使像这些(626*)34a2-4387)也应该转换成6263424387 这是怎么做到的?我觉得这太难了?您可以使用以下方法搜索所有非数字: \D+ 或 并替换为空字符串 我自己总是忘记这一点,上网寻找答案。在这里,供我将来参考,以及互联网的其他部分 cons

除了[^0-9\n]之外,我还需要一个正则表达式(但不知道如何制作),它可以捕获像这样的数字模式,“0000000000”或“000-000-0000”中的任何内容,或者基本上可以捕获前面或中间有空格或特殊字符的任何数字

所以任何数字,即使像这些(626*)34a2-4387)也应该转换成6263424387


这是怎么做到的?我觉得这太难了?

您可以使用以下方法搜索所有非数字:

\D+

并替换为空字符串


我自己总是忘记这一点,上网寻找答案。在这里,供我将来参考,以及互联网的其他部分

const rawNumber = '(555) 123-4567';
const strippedNumber = rawNumber.replace(/\D+/g, '');

当然,我上面的例子是特定于JavaScript的,但它可以很容易地适应其他语言。原来的帖子没有指定语言。

请考虑书签,以备将来参考。请特别参阅有关字符类的部分。正则表达式字符类
[^0-9\n]
有什么问题?除了它包含一个换行符(我假设您希望保留)之外,还有,您使用的是哪种语言?答案可能取决于这一点(不同的语言=不同风格的正则表达式)。这是文本的段落,有电话号码,还有其他包含数字的文本。因此7[^0-9\n]不起作用实际上,我需要在文字墙中查找并删除除电话号码以外的所有内容,如段落,而不是行。基本上应该是这样的xxx+xxx+xxxx,其中+可以包含从字母到所有特殊字符的任何内容。所以它可以是123*454j4323等等,也可以是xxxxxxxxx,假设有一个文本墙,一个段落。我们需要删除段落中的所有内容,只保留电话号码。电话号码可以是这样的(xxx)xxx xxxx或XXXXXXXXX或+xxx+xxx+xxx+“+”符号所在的位置可以是字母或特殊字符。我们希望能够检测任何号码,即使它是这样的,*444d654-3244),我们可以稍后使用[^0-9\n]清除所有电话号码行,但现在,我们希望检测上述格式
const rawNumber = '(555) 123-4567';
const strippedNumber = rawNumber.replace(/\D+/g, '');