REGEX - 字符串不得以这些词开头,并且可以包含字母数字字符
REGEX - String must not start from these words and may contain alphanumeric characters
要求如下:
1.First three characters must not be "CP ","C P". Note there is a space in both these words
2.First character may be alphanumeric, including À, Â, Ç, È
3.2nd and 3rd caracter can be any ascii character other than (0-31)
我遇到问题的部分是如何在字符串不以 "CP " 字或 "C P" 那个字开头的情况下编写正则表达式。请注意,ASCII 32 是 space 字符,它在正则表达式匹配中有效,但在与 "CP ".
结合时无效
我尝试过类似的方法作为起点,但无济于事
(?!CP )[^\x00-\x1F]
示例字符串
无效文本:CP 420、CP 420
有效文本:abc 420、420 CP 等
我尝试了一些 REGEX 表达式,得出了这个结果。
^((?!cp )(?!c p))(.)*$
这将产生以下结果
acp -> Matched
cpa -> Matched
fsdgsfdgsfd -> Matched
c psadsadsadsa -> Not Matched
cpasdsa -> Matched
ac pasdsadsa -> Matched
cp sadfsdfsdf -> Not Matched
Ècp sadfsdfsdf -> Matched
不确定这是否是您需要的。如果没有,请提供更多示例,我将深入挖掘。
编辑 1:
按照细化的要求,试试看能不能行。
^((?!CP )(?!C P)(?!.[\x00-\x1F][\x00-\x1F]))(.)*$
您需要一个起始锚点,您需要将可选的空格添加到否定前瞻中。列出你想要的字符比列出你不需要的字符更容易,因为它是 2 个不同的范围。尝试:
^(?!(?:C ?P|CP ?))[A-Za-z\dÀÂÇÈ][\x20-\xFF]{1,2}
要求如下:
1.First three characters must not be "CP ","C P". Note there is a space in both these words
2.First character may be alphanumeric, including À, Â, Ç, È
3.2nd and 3rd caracter can be any ascii character other than (0-31)
我遇到问题的部分是如何在字符串不以 "CP " 字或 "C P" 那个字开头的情况下编写正则表达式。请注意,ASCII 32 是 space 字符,它在正则表达式匹配中有效,但在与 "CP ".
结合时无效我尝试过类似的方法作为起点,但无济于事
(?!CP )[^\x00-\x1F]
示例字符串
无效文本:CP 420、CP 420
有效文本:abc 420、420 CP 等
我尝试了一些 REGEX 表达式,得出了这个结果。
^((?!cp )(?!c p))(.)*$
这将产生以下结果
acp -> Matched
cpa -> Matched
fsdgsfdgsfd -> Matched
c psadsadsadsa -> Not Matched
cpasdsa -> Matched
ac pasdsadsa -> Matched
cp sadfsdfsdf -> Not Matched
Ècp sadfsdfsdf -> Matched
不确定这是否是您需要的。如果没有,请提供更多示例,我将深入挖掘。
编辑 1: 按照细化的要求,试试看能不能行。
^((?!CP )(?!C P)(?!.[\x00-\x1F][\x00-\x1F]))(.)*$
您需要一个起始锚点,您需要将可选的空格添加到否定前瞻中。列出你想要的字符比列出你不需要的字符更容易,因为它是 2 个不同的范围。尝试:
^(?!(?:C ?P|CP ?))[A-Za-z\dÀÂÇÈ][\x20-\xFF]{1,2}