[英]Regex to match string either not exact string or pattern
我正在尝试与此正则表达式匹配模式
"^[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
或CreatedDate
或CreatedBy
或CreatedBy
或ModifiedDate
或ModifiedBy
或OrgID
,则该模式也应失败。 还应检查是否检查了静态字符串,不区分大小写。
您需要在开头添加一个负前瞻,以检查其中是否包含所提及的确切字符串。 (?i)
称为不区分大小写的修饰符,它强制正则表达式引擎进行不区分大小写的匹配。
@"(?i)^(?!(?:ID|CreatedDate|CreatedBy|ModifiedDate|ModifiedBy|OrgID)$)[a-zA-Z][a-zA-Z0-9\s_]*"
此模式应匹配任何字符串
不以数字开头
^\\D
或除空格,下划线,字符和数字以外的其他内容
^\\D[ _a-zA-Z0-9]*$
如果字符串恰好是ID
或CreatedDate
或CreatedBy
或ModifiedDate
或ModifiedBy
或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
与az
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.