![](/img/trans.png)
[英]Use multiple regex to check blacklisted patterns are there in the string
[英]check string with multiple length patterns
我需要使用正則表達式檢查字符串。
有效的字符串例如: ABC0001
或A00023
。
我必須檢查三個部分:
[a-zA-Z]{1,}
[0]{1,}
\\\\d+
整個字符串不得超過8個符號。
到目前為止我嘗試過的是:
String NR_PATTERN = "^([a-zA-Z]{1,}[0]{1,}\\d+){3,8}$";
問題是,正則表達式不接受字符串: KDS0234
您可以在開始時嘗試進行積極的前瞻:
(?=^.{3,8}$)([a-zA-Z]{1,}[0]{1,}\\d+)
積極的前瞻性:
(?=^.{3,8}$)
會向前看?=
並確認從字符串的開始^
到結尾$
,是否有與匹配的字符.
在3至8次之間{3,8}
。
(…){3,8}
表示您想…序列在3到8次之間重復,而不是字符串是8個字符
您可以只使用(知道您說過需要正則表達式,但這也許對您有用)
String NR_PATTERN = "[a-zA-Z]+0+\\d+";
String s = "ABC0001";
boolean match = s.length() < 8 && s.matches(NR_PATTERN);
您可以先行檢查長度條件,然后匹配您的圖案:
\b(?=[a-zA-Z0-9]{3,8})([A-Za-z]+0[0-9]+)\b
您可以申請:
\b(?=[A-Z]+0+\d+)\w{3,8}\b
請參閱regex101.com上的演示 ,在Java
使用雙反斜杠。
B123456 or 0001B
但不是
B123456 or 0001B
(?=^.{3,8}$)([a-zA-Z]+[0]+\d+)
希望這個幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.