如果后面跟数字,请替换字符

时间:2018-11-30 13:45:33

标签: php regex

我有文字:

$text = 'hello c8 world c test';

如果c包含字母chapter 后跟数字,如何用$text替换c字符?

所以我们最终得到:

$text = 'hello chapter 8 world c test';

到目前为止,我已经成功地将c替换为chapter

str_replace('c', 'chapter ', $text);

但这将替换所有 c个字符。我想正则表达式应该解决这个问题吗?

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式并检查c的以下数字:

$text = 'hello c8 world c test';
$result=preg_replace("/c(?=\d+)/", "chapter" ,$text);

echo $result;

运行here

答案 1 :(得分:1)

您可以使用:

\bc(\d+)\b

并替换为

chapter \1

说明:

  • \b标记单词边界,以避免单词内部替换
  • c(\d+)找到c和数字,并捕获这些数字以备将来使用
  • \1替换中的第一个捕获组(数字)将替换

Demo

例如

preg_replace('/\bc(\d+)\b/', 'chapter \1', $text);