如何用正则表达式删除(替换)标点符号?

时间:2016-12-19 11:14:19

标签: regex

我正在尝试使用我的表单创建对象时将某些标点符号转换为分号。

要求:

我想转换:

  • 空格(1或更多)
  • 逗号
  • 结肠
  • 分号
  • Asteriks
  • 斜线
  • 下划线

分号。

到目前为止我得到了什么:

$plates = preg_replace('/\s+/[.,:;*/\_]/g', ';', $license_plates);

当我尝试用http://regexr.com/执行此操作时,我没有得到任何结果。

有谁知道我的语法有什么问题?

1 个答案:

答案 0 :(得分:1)

至少有两个问题:/之后\s+应更改为|,因为您想在此处使用更改,{{1修饰符不与PHP正则表达式一起使用。此外,您无需转义/g符号。

使用

_

请参阅regex demo

<强>详情:

  • $plates = preg_replace('~\s+|[.,:;*/_]~', ';', $license_plates); - 1+空格
  • \s+ - 或
  • | - 集合中的单个字符:[.,:;*/_].,:;,{{1} },或*。请注意,使用代字号regex delimiter可以在正则表达式模式中使用未转义的/