从字符串中删除子字符串/模式字

时间:2014-02-16 12:41:03

标签: php regex string replace preg-replace

嗨我在php中有一个大字符串,从100到10,000个字符不等。

在该字符串中,可能有也可能没有表格的子字符串:

reference: asdas_ad_12321_3asd

如果此子字符串存在,reference:将始终存在,但参考代码的大小可能会有所不同。参考代码由字母,数字和下划线组成。参考代码可以或可以不以句号,空格或新行结束。

从字符串中删除此子字符串的最佳方法是什么?任何pregmatch,或正则表达式将有助于我理解它,但它不是很好。

我猜是像

preg_replace('/reference: [a-zA-Z0-9_]/', '', $string)

我是在正确的轨道上吗?

1 个答案:

答案 0 :(得分:2)

你相当接近。但[a-zA-Z0-9_]只匹配[ and ]中列出的单个字符。

您可以使用:

$replaced = preg_replace('/reference: [a-zA-Z0-9_]+/', '', $string);

量词+匹配前面的正则表达式模式中的一个或多个。

或更好:

$replaced = preg_replace('/reference: \w+/', '', $string);

由于\w[a-zA-Z0-9_]

相同

Recommended Regex Refrence