如何為字符串構(gòu)建顯式正則表達(dá)式,其中字母在開頭,下劃線或數(shù)字在中間,字母或數(shù)字在末尾?到目前為止嘗試的模式可以在測試用例中看到。https://regex101.com/r/JedpJu/3我想過濾掉如下所示的字符串。_(僅下劃線)9a_d(以數(shù)字開頭的字符串)ad_(以下劃線結(jié)尾)編輯ad*d_rr(除下劃線外的任何特殊字符也不應(yīng)被允許。
1 回答
牧羊人nacy
TA貢獻(xiàn)1862條經(jīng)驗 獲得超7個贊
您可以使用
^[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?$
這與
^[A-Za-z](?:\w*[A-Za-z0-9])?$
在Java中,您可以將其與錨點一起使用并省略錨點:.matches()
s.matches("[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?")
s.matches("[A-Za-z](?:\\w*[A-Za-z0-9])?")如果字符串可能包含換行符,請使用
s.matches("(?s)[A-Za-z](?:[A-Za-z0-9_]*[A-Za-z0-9])?")
s.matches("(?s)[A-Za-z](?:\\w*[A-Za-z0-9])?")其中,可以匹配換行符。(?s).
添加回答
舉報
0/150
提交
取消
