从字符串删除数字前缀 - PHP正则表达式

时间:2010-03-07 22:48:06

标签: php regex

有人会关心帮助我使用正则表达式来可靠地识别并删除字符串开头的任何数字,后跟一个点吗?那么

1. Introduction

变为

Introduction

1290394958595. Appendix A

变为

Appendix A

8 个答案:

答案 0 :(得分:8)

我知道问题已经结束,只是我的两分钱:

preg_replace("/^[0-9\\.\\s]+/", "", "1234. Appendix A");

在我看来,效果最好,主要是因为它还会处理诸如

之类的案件
1.2 This is a level-two heading

答案 1 :(得分:6)

尝试:

preg_replace('/^[0-9]+\. +/', '', $string);

给出了:

php > print_r(preg_replace('/^[0-9]+\. +/', '', '1231241. dfg'));
dfg

答案 2 :(得分:3)

瞧:

^[0-9]+\.

答案 3 :(得分:1)

好的,这不符合识别并删除任何数字,后跟一个点,但它会返回所需的字符串,例如附录A,因此可能有资格作为替代方案。

// remove everything before first space
echo trim(strstr('1290394958595. Appendix A', ' '));

// remove all numbers and dot and space from the left side of string
echo ltrim('1290394958595. Appendix A', '0123456789. ');

请忽略它,它不是一种选择。

答案 4 :(得分:0)

字符串之后的东西

$string = "1290394958595. Appendix A";
$first_space_position = strpos(" ", $string);
$stuff_after_space = substr($string, $first_space_position);

点后的东西

$string = "1290394958595. Appendix A";
$first_dot_position = strpos(".", $string);
$stuff_after_dot = substr($string, $first_dot_position);

答案 5 :(得分:0)

你走了:

/[0-9]+\./

顺便说一句,我肯定会在这里使用正则表达式,因为它们非常可靠且轻量级。

干杯

答案 6 :(得分:0)

print preg_replace('%^(\d+\. )%', '', '1290394958595. Appendix A');

答案 7 :(得分:0)

用于在字符串中搜索正则表达式并将其替换为其他内容的PHP函数是preg_replace。在这种情况下,您需要以下内容:

$mytitle = preg_replace('/^[0-9]+\. */', '', $myline);