如何使用RegEx从字符串中删除数字

Cli*_*ote 17 php regex string

我有一个像这样的字符串:

" 23 PM"
Run Code Online (Sandbox Code Playgroud)

我想删除23所以我只是留下PM或(空间被截断)PM.

有什么建议?

需要在PHP中

Mar*_*ker 62

echo trim(str_replace(range(0,9),'',' 23 PM'));
Run Code Online (Sandbox Code Playgroud)

  • +1.这个问题非常直观的答案:删除数字和修剪. (4认同)
  • Literal有时候是最好的选择,没有OP的进一步描述......我的解决方案与你自己的解决方案没什么不同 (2认同)

Gor*_*don 15

可以做 ltrim

ltrim(' 23 PM', ' 0123456789');
Run Code Online (Sandbox Code Playgroud)

这将从字符串的左侧删除任何数字和空格.如果您需要双面,您可以使用trim.如果你需要它只是在右侧,你可以使用rtrim.


tom*_*sky 14

preg_replace("/[0-9]/", "", $string);


Gor*_*don 5

也可以使用str_replace,这通常是RegEx的更快替代方案.

str_replace(array(1,2,3,4,5,6,7,8,9,0,' '),'', ' 23 PM');
// or
str_replace(str_split(' 0123456789'), '', ' 23 PM');
Run Code Online (Sandbox Code Playgroud)

它将替换任何数字0-9和字符串中的空格,无论位置如何.


And*_*y E 5

如果您只想要字符串的最后两个字符,请使用带负数的substr:

$pm = substr("  23 PM", -2); // -> "PM"
Run Code Online (Sandbox Code Playgroud)

  • 提出这个来补偿不合理的downvote,也因为OP不清楚他期望的字符串,Andy明确说明了上面代码的作用. (3认同)