如何从字符串的开头和结尾删除所有特殊字符,期望#和,?

时间:2015-08-22 03:43:30

标签: php regex string preg-replace

我必须从字符串的开头和结尾删除除#,之外的所有特殊字符。

我试过这样的事情:

$q = preg_replace('/[^A-Za-z0-9\-\(\) ]/', '', $q);

2 个答案:

答案 0 :(得分:1)

这应该适合你:

正如您已经使用的那样,我在这里使用preg_replace()来替换不是#,的字符串的开头或结尾处的每个字符。

$q = preg_replace('/^[^#,]|[^#,]$/', '', $q);

正则表达式解释:

^[^#,]|[^#,]$
  • 第一选择: ^ [^#,]
      字符串的
    • ^ assert position at start
    • [^#,] 匹配以下list中不存在的单个字符
      • #,列表中的单个字符#,字面意思
  • 第二种选择: [^#,] $
    • [^#,] 匹配以下list中不存在的单个字符
      • #,列表中的单个字符#,字面意思
    • $ assert position at end字符串

答案 1 :(得分:0)

将所有特殊字符放入要删除的数组中。像这样使用它

str_replace(array(':', '\\', '/', '*','$','%'), ' ', $string);