正则表达式匹配法语和德语字符

时间:2011-04-20 07:42:24

标签: java regex

我正在解析请求参数以查找任何易受攻击的字符以防止XSS威胁。我们的Web应用程序支持除英语之外的法语和德语。我使用以下正则表达式来实现此目的,但它无法处理法语和德语

^[a-zA-Z0-9\r\n\\-=\\*\\.\\?;,+\\/:&_ %@#]*$

对此有任何建议,我们非常感谢

3 个答案:

答案 0 :(得分:8)

答案 1 :(得分:4)

尝试[\p{Latin}\p{Punctuation}\p{Math_Symbol}]或添加更多字符类。查看其他unicode字符类的here

答案 2 :(得分:0)

我知道这是一个老问题。

但希望它帮助那里的人!你可以试试这个正则表达式:

([\u0020-\u007e\u00a0-\u00ff\u0100-\u017F]+)

基本上它应匹配所有拉丁语和扩展拉丁字符,包括数字,随意删除unicode字符。我想说这将是让你适应所有场景的最可靠方法。

参考文献: