我试图将模式与此正则表达式匹配
"^[a-zA-Z]{1}[a-zA-Z0-9\\s_]*(?<![Ii][Dd]|[Cc][Rr][Ee][Aa][Tt][Ee][Dd][Dd][Aa][Tt][Ee]|[Cc][Rr][Ee][Aa][Tt][Ee][Dd][Bb][Yy]|[Mm][Oo][Dd][Ii][Ff][Ii][Ee][Dd][Dd][Aa][Tt][Ee]|[Mm][Oo][Dd][Ii][Ff][Ii][Ee][Dd][Bb][Yy]|[Oo][Rr][Gg][Ii][Dd])$"
此模式应匹配任何不以数字开头的字符串或除空格,下划线,字符和数字以外的任何其他字符串,以及如果字符串正好是ID
或{{1 }}或CreatedDate
或CreatedBy
或ModifiedDate
或ModifiedBy
。它还应检查是否检查静态字符串而不区分大小写。
答案 0 :(得分:2)
您需要在开头添加一个负向前瞻,以检查不包含所提及的确切字符串的字符串。 (?i)
称为不区分大小写的修饰符,它强制正则表达式引擎执行不区分大小写的匹配。
@"(?i)^(?!(?:ID|CreatedDate|CreatedBy|ModifiedDate|ModifiedBy|OrgID)$)[a-zA-Z][a-zA-Z0-9\s_]*"
答案 1 :(得分:1)
此模式应匹配任何字符串
不以数字开头
^\D
或除了空格,下划线,字符和数字之外还有其他任何东西
^\D[ _a-zA-Z0-9]*$
如果字符串完全是ID
或CreatedDate
或CreatedBy
或ModifiedDate
或ModifiedBy
或{{},那么它也会失败1}}。
OrgID
还应该检查是否在没有区分大小写的情况下检查静态字符串。
^(?!(?:CreatedDate|CreatedBy|ModifiedDate|ModifiedBy|OrgID)$)\D[ _a-zA-Z0-9]*$
注释
^(?!(?:(?i)CreatedDate|CreatedBy|ModifiedDate|ModifiedBy|OrgID)$)\D[ _a-zA-Z0-9]*$
字面意思表示“不应以数字开头”。如果您的意思是“......但起始字符仍然是^\D
”之一,则[ _a-zA-Z0-9]
必须更改为^\D
。^[a-zA-Z]
替换所有a-zA-Z
。