我希望能够从字符串的左右两端删除所有非字母数字字符,只保留字符串中间的那些。与此类似的问题我曾在这里询问过,得到了一个好的解决方案:
但它也会移除一些符号,如ąĄćĆęĘ等,而它不应该,因为它们仍然是字母符号。
上面的例子应该这样做:
$str = preg_replace('/^\W*(.*\w)\W*$/', '$1', $str);
但它也会移除一些符号,如ąĄćĆęĘ等,而它不应该,因为它们仍然是字母符号。
上面的例子应该这样做:
~~AAA~~ => AAA (OK)
~~AA*AA~~ => AA*AA (OK)
~~ŚAAÓ~~ => AA (BAD)