【问题标题】:Regular expressions replace正则表达式替换
【发布时间】:2015-01-24 09:42:56
【问题描述】:

我需要删除

[0037][user name] 

一个句子的组合。在第一个括号中总是包含数字 例如:

[0032]

位数绝对不会超过 4。在第二个括号中总是包含字母,例如:

[first name]

有人知道怎么做吗?

【问题讨论】:

  • 有人这样做。如果你尝试自己解决呢?

标签: php regex function str-replace preg-replace-callback


【解决方案1】:
\[\d{1,4}\]\[[a-zA-Z ]+\]

应该这样做。替换为empty string。查看演示。

http://regex101.com/r/oE6jJ1/22

$re = "/\\[\\d{1,4}\\]\\[[a-zA-Z ]+\\]/im";
$str = "asdas asdsad [1234][asd asd] asdasd";
$subst = "";

$result = preg_replace($re, $subst, $str);

【讨论】:

  • 你忘记了空格。
  • user name——在“user”之后,在“name”之前?
【解决方案2】:

你可以使用preg_replace()来实现正则表达式语法,试试下面的表达式。

$str = preg_replace('/\[\d+]\[[a-z ]+]/i', '', $str);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    相关资源
    最近更新 更多