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

How can I remove all special characters from the start and end of a string, expect # and ,?

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

我试过这样的事情:

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

将要删除的数组中的特殊字符全部放入,这样使用

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

这应该适合你:

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

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

正则表达式解释:

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