正则表达式删除电话号码打破

问题描述:

我有了一些线之间数字的巨大代码: 如:正则表达式删除电话号码打破

code code code 
7362 
code code code 
code code code 
code code code 
63 
code code code 
... 

我想删除这个数字,代码之间成为:

code code code 
code code code 
code code code 
code code code 
code code code 

我试过:

$a = preg_replace("/(s[0-9,]+s)/", "", $a); 

但它不工作。

/(s[0-9,]+s 
+0

http://*.com/a/14236162/3164682 – Sarath

你忘了逃跑的'

$a = preg_replace("/(\s[0-9,]+\s)/", "", $a); 

和昏迷9之后是没有必要的。

+0

然而,这种'\ S [0-9] + \ s'将开始删除换行符,并不会找到号码/字符串的结尾。事实上,这将会删除任何地方的数字,而不仅仅是数字字符串。 –

这将删除所有的数字:

$words = preg_replace('/[0-9]+/', '', $words); 

去除数字仅线最好的办法是使用

'~^\d+$\R*~m' 

regex demo

图案的详细资料

  • ^ - 线的开始(因为 MULTILINE改性剂使^到行的开始匹配,不字符串)
  • \d+ - 1个或多个数字
  • $ - 线
  • 的端
  • \R* - 零或更多换行符(任何序列,如LF,CR,CR + LF)。

PHP demo

$str = "code code code\n7362\ncode code code\ncode code code\ncode code code\n63\ncode code code\n..."; 
$result = preg_replace('~^\d+$\R*~m', '', $str); 
echo $result; 
+0

如果您有任何其他与当前问题相关的问题,请随时放下评论。 –

我想这它为我工作。

/[1-9][0-9]*/g