[英]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.