正则表达式删除额外的字符

时间:2011-10-06 15:01:06

标签: regex coldfusion

我正在使用此模式[^a-z0-9+\ ,#\-.]来过滤标记,然后再将其保存到我的数据库中。

它会产生不良的副作用;它会删除重音:instalação变为instalao

任何想法如何在坚持模式的同时保持口音完好无损?

我正在使用ColdFusion,所以我认为它基于Java Regex,但我可能错了。

我的目的是允许字母(带重音符号),0到9个阿拉伯数字,点和哈希。

3 个答案:

答案 0 :(得分:5)

根据the documentation \w匹配任何(Unicode)字母,数字和下划线。如果你不想要下划线,你可以这样做:

[^[:alpha:]0-9#.-]

其中[:alpha:]匹配任何(Unicode)字母。如果您想匹配0-9范围之外的数字,请尝试:

[^[:alnum:]##.-]

注意,要使用额外的哈希来转义ColdFusion自己的标记,否则会导致格式错误的标记/变量错误。

答案 1 :(得分:2)

你试过角色课吗? \ w 匹配字母,数字和下划线,可能只匹配重音字符,但我不确定。

答案 2 :(得分:2)

使用

[^\w]

\ w匹配任何单词字符。在这种情况下,所有非单词字符。 或

\W

匹配所有非单词字符。