【发布时间】:2023-03-25 16:38:01
【问题描述】:
在我的代码中:
$c = preg_replace('#[^a-z0-9áčďéěíňóřšťúůýž_-:().,;!?]#i', '', $_POST['c']);
我收到此错误:
警告:preg_replace() [function.preg-replace]:编译失败:偏移量 40 处的字符类范围乱序
IDK 哪里可能出错。
【问题讨论】:
-
你想做什么?删除任何非字母数字字符?
-
试试这个:
$c = preg_replace('#[^a-z0-9áčďéěíňóřšťúůýž\_\-\:\(\)\.\,\;\!\?]#i', '', $_POST['c']); -
@LatheesanKanes 不,我想,只允许设置的那些。它是用于 cmets 的文本字段的正则表达式。
-
@LatheesanKanes 这就是问题所在 - 转义该字符。解决了我的问题。
-
@LatheesanKanes:没有必要转义所有这些字符,因为它们在字符类中。
标签: php regex preg-replace