【问题标题】:Regular Expression swedish alphabet and whole word正则表达式瑞典字母表和整个单词
【发布时间】:2014-09-03 12:33:08
【问题描述】:

我需要正则表达式方面的帮助。允许的是所有:

  • 瑞典字母表
  • 数字0-9
  • 点和下划线

什么是不允许的:

  • 所有奇怪的字符
  • 空白
  • 和 AND OR NOT OK 字样

我尝试了不同的方法,但没有成功。 在我的模型中,我有以下

[RegularExpression(@"^(?:(?!\b(?i:AND|O[RK]|NOT|FALSE|TRUE)\b)[\wåäöÅÄÖ\._])*$", ErrorMessageResourceName = 

但我得到了一个 javascript 异常? i 区分大小写的问题

评估代码中第 660 行第 6 列未处理的异常

0x800a139a - JavaScript 运行时错误:意外的量词

我做错了什么?

【问题讨论】:

    标签: javascript .net regex asp.net-mvc-3


    【解决方案1】:

    1 & 2
    瑞典语字母表(包括英语字母表,以及您在正则表达式中提到的那些)、数字和下划线:[\wåäöÅÄÖ]

    3
    添加点...:[\wåäöÅÄÖ.]

    4
    上述字符类中没有奇怪的字符

    5
    上述字符类中不允许有空格

    6
    通过否定前瞻和添加锚点、量词和标志的特定词:

    @"^(?:(?!\b(?:AND|O[RK]|NOT)\b)[\wåäöÅÄÖ.])*$", RegexOptions.IgnoreCase
    

    【讨论】:

    • 你的更好,我从没想过在比赛开始时做负前瞻,因为某种原因感觉很奇怪而且容易出错。也许这只是一种感觉。
    • @funkwurm 没关系;我已经使用了一段时间了,到目前为止它们从未让我失望过 :) 虽然速度不是很快,因为上面的正则表达式会检查每个字符。两个正则表达式在这里可能会更好;一个检查 4 个单词,然后一个验证字符。 IMO 应该更快。
    【解决方案2】:

    您将单词边界\b 和否定前瞻放在字符类中。这就是我要做的并设置忽略大小写:

    ^(?:[B-MP-ZåäöÅÄÖ\._]|\bA(?!ND\b)|\bN(?!OT\b)|\bO(?![KR]\b))*$
    

    Debuggex Demo

    【讨论】:

    猜你喜欢
    • 2021-08-10
    • 1970-01-01
    • 2019-06-02
    • 1970-01-01
    • 2010-11-15
    • 2021-12-30
    • 2012-01-06
    • 2011-11-19
    相关资源
    最近更新 更多