【问题标题】:Regular expression to match French and German characters正则表达式匹配法语和德语字符
【发布时间】:2016-04-13 15:28:24
【问题描述】:

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

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

对此的任何建议都非常感谢

【问题讨论】:

  • 您使用的是哪种正则表达式变体:Perl、Python、.NET 还是其他? (解决方案将与 Unicode 字符类相关,但细节取决于正则表达式的实现。)

标签: java regex


【解决方案1】:

【讨论】:

  • 它也匹配亚洲字母。
  • 但不匹配重音字母。 \p{M} 用于与另一个字符组合的字符(例如重音符号、变音符号、封闭框等)。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我知道这是一个老问题。

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

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

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

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-04
      • 2014-05-10
      • 2012-04-15
      • 1970-01-01
      • 2017-06-17
      • 2018-04-29
      • 2012-01-16
      • 2020-03-23
      相关资源
      最近更新 更多