我正在使用此模式[^a-z0-9+\ ,#\-.]
来过滤标记,然后再将其保存到我的数据库中。
它会产生不良的副作用;它会删除重音:instalação
变为instalao
任何想法如何在坚持模式的同时保持口音完好无损?
我正在使用ColdFusion,所以我认为它基于Java Regex,但我可能错了。
我的目的是允许字母(带重音符号),0到9个阿拉伯数字,点和哈希。
答案 0 :(得分:5)
根据the documentation \w
匹配任何(Unicode)字母,数字和下划线。如果你不想要下划线,你可以这样做:
[^[:alpha:]0-9#.-]
其中[:alpha:]
匹配任何(Unicode)字母。如果您想匹配0-9
范围之外的数字,请尝试:
[^[:alnum:]##.-]
注意,要使用额外的哈希来转义ColdFusion自己的标记,否则会导致格式错误的标记/变量错误。
答案 1 :(得分:2)
你试过角色课吗? \ w 匹配字母,数字和下划线,可能只匹配重音字符,但我不确定。
答案 2 :(得分:2)
使用
[^\w]
\ w匹配任何单词字符。在这种情况下,所有非单词字符。 或
\W
匹配所有非单词字符。