JAVAにおける正規表現
23310 ワード
JAvaで使用される正規表現の構築要素:
Stringクラスの3つの基本操作は、正則を使用します.
マッチング:matches()
カット:split()
置換:replaceAll()
下にはよく使われるものがあります
1つ目の使用シーン:Matcherオブジェクトのみを使用して目的の文字列に一致します.
2つ目の使用シーン:一致ルールに一致グループが含まれており、対応する一致グループのデータを一致させる必要があります.
出力結果:
3番目のシーン:取得した結果をMatcheResultで保存します.
出力結果:
一般的な正規表現:
x x。 :'a' a
\\ 。
( ) ('\u000A')
\r ('\u000D')
[abc] a、b c( )
[^abc] , a、b c( )
[a-zA-Z] a z A Z, ( )
[0-9] 0 9
. 。 . , ? \.
\d :[0-9]
\D :[^\d]/[^0-9]
\w :[a-zA-Z_0-9]
\W [^\w]
^
$
\b , 。
Greedy
X? X,
X* X,
X+ X,
X{n} X, n
X{n,} X, n
X{n,m} X, n , m
XY X Y
X|Y X Y
(X) X,
Stringクラスの3つの基本操作は、正則を使用します.
マッチング:matches()
カット:split()
置換:replaceAll()
下にはよく使われるものがあります
//
String str1 = "1 2 3 4 54 5 6";
String[] numbers = str1.split(" +");
for (String temp : numbers) {
System.out.println(temp);
}
// , *
String str2 = "abd123:adad46587:asdadasadsfgi#%^^9090";
System.out.println(str2.replaceAll("[0-9]", "*"));
System.out.println(str2.replaceAll("\\d", "*"));
//
String mail1 = "[email protected]";
String mail2 = "[email protected]";
String mail3 = "ababc@asa";
// String mainRegex = "[0-9a-zA-Z_]+@[0-9a-zA-Z_]++(\\.[0-9a-zA-Z_]+{2,4})+";
String mainRegex = "\\w+@\\w+(\\.\\w{2,4})+";
System.out.println(mail1.matches(mainRegex));//true
System.out.println(mail2.matches(mainRegex));//true
System.out.println(mail3.matches(mainRegex));//false
/**
* java :
* pattern:
* Pattern Pattern.complie(regexString)
* Macther Pattern.matches(regexString)
* Matcher:
* boolean matcher.find() //
* String matcher.guorp() //
* boolean matcher.matches() //
* int matcher.groupCount() // , :(aa)(bb):
* String matcher.group(int group) //
* MatcheResult matcher.toMatchResult() // MatchResult
*/
1つ目の使用シーン:Matcherオブジェクトのみを使用して目的の文字列に一致します.
// 3
String str = "abc 124 ewqeq qeqe qeqe qeqe aaaa fs fsdfs d sf sf sf sf sfada dss dee ad a f s f sa a'lfsd;'l";
Pattern pt = Pattern.compile("\\b\\w{3}\\b");
Matcher match = pt.matcher(str);
while (match.find()) {
System.out.println(match.group());
}
//
String str2 = "dadaadad da da dasK[PWEOO-123- [email protected] [email protected] =0KFPOS9IR23J0IS ADHAJ@[email protected] [email protected] UFSFJSFI-SI- ";
Pattern pet2 = Pattern.compile("\\b\\w+@\\w+(\\.\\w{2,4})+\\b");
Matcher match2 = pet2.matcher(str2);
while (match2.find()) {
System.out.println(match2.group());
}
2つ目の使用シーン:一致ルールに一致グループが含まれており、対応する一致グループのデータを一致させる必要があります.
String sr = "dada ada adad adsda ad asdda adr3 fas daf fas fdsf 234 adda";
// , ,
Pattern pet = Pattern.compile("\\b(\\w{3}) *(\\w{4})\\b");
Matcher match = pet.matcher(sr);
int countAll = match.groupCount();//2
while (match.find()) {
System.out.print(" :");
for (int i = 0; i < countAll; i++) {
System.out.print(String.format("
\t %s :%s",i+1,match.group(i + 1)));
}
System.out.print("
:");
System.out.println(match.group());
}
出力結果:
:
1 :ada
2 :adad
:ada adad
:
1 :fas
2 :fdsf
:fas fdsf
:
1 :234
2 :adda
:234 adda
3番目のシーン:取得した結果をMatcheResultで保存します.
String sr = "dada ada adad adsda ad asdda adr3 fas daf fas fdsf 234 adda";
Pattern pet = Pattern.compile("\\b(\\w{3}) *(\\w{4})\\b");
Matcher match = pet.matcher(sr);
MatchResult ms = null;
while (match.find()) {
ms = match.toMatchResult();
System.out.print(" :");
for (int i = 0; i < ms.groupCount(); i++) {
System.out.print(String.format("
\t %s :%s",i+1,ms.group(i + 1)));
}
System.out.print("
:");
System.out.println(ms.group());
}
出力結果:
:
1 :ada
2 :adad
:ada adad
:
1 :fas
2 :fdsf
:fas fdsf
:
1 :234
2 :adda
:234 adda
一般的な正規表現:
(1) "^\d+$" // ( + 0)
(2) "^[0-9]*[1-9][0-9]*$" //
(3) "^((-\d+)|(0+))$" // ( + 0)
(4) "^-[0-9]*[1-9][0-9]*$" //
(5) "^-?\d+$" //
(6) "^\d+(\.\d+)?$" // ( + 0)
(7) "^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$" //
(8) "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" // ( + 0)
(9) "^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //
(10) "^(-?\d+)(\.\d+)?$" //
(11) "^[A-Za-z]+$" // 26
(12) "^[A-Z]+$" // 26
(13) "^[a-z]+$" // 26
(14) "^[A-Za-z0-9]+$" // 26
(15) "^\w+$" // 、26
(16) "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //email
(17) "^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$" //url
(18) /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // - -
(19) /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // / /
(20) "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$" //Emil
(21) /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/ //
(22) "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP
(24) : [\u4e00-\u9fa5]
(25) ( ):[^\x00-\xff]
(26) :
[\s| ]*\r
(27) HTML :/<(.*)>.*<\/\1>|<(.*) \/>/
(28) :(^\s*)|(\s*$)
(29) Email :\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(30) URL :^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
(31) ( , 5-16 , ):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
(32) :(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
(33) QQ :^[1-9]*[1-9][0-9]*$
(34) :
(35) \ 、 、 、 。
(36) ^ 。 RegExp Multiline ,^ ’
’ ’\r’ 。
(37) $ 。 RegExp Multiline ,$ ’
’ ’\r’ 。
(38) * 。
(39) + 。+ {1,}。
(40) ? 。? {0,1}。
(41) {n} n , n 。
(42) {n,} n , n 。
(43) {n,m} m n , n <= m。 n m 。 。
(44) ? (*, +, ?, {n}, {n,}, {n,m}) , 。 , 。
(45) . "
" 。 ’
’ , ’[.
]’ 。
(46) (pattern) pattern 。
(47) (?:pattern) pattern , , 。
(48) (?=pattern) , pattern 。 , , 。
(49) (?!pattern) , (?=pattern)
(50) x|y x y。
(51) [xyz] 。
(52) [^xyz] 。
(53) [a-z] , 。
(54) [^a-z] , 。
(55) \b , 。
(56) \B 。
(57) \cx x 。
(58) \d 。 [0-9]。
(59) \D 。 [^0-9]。
(60) \f 。 \x0c \cL。
(61)
。 \x0a \cJ。
(62) \r 。 \x0d \cM。
(63) \s , 、 、 。 [ \f
\r\t\v]。
(64) \S 。 [^ \f
\r\t\v]。
(65) \t 。 \x09 \cI。
(66) \v 。 \x0b \cK。
(67) \w 。 ’[A-Za-z0-9_]’。
(68) \W 。 ’[^A-Za-z0-9_]’。
(69) \xn n, n 。 。
(70)
um num, num 。 。
(71)
。
n , n 。 , n (0-7), n 。
(72)
m 。
m is preceded by at least nm , nm 。
m n , n m 。 , n m (0-7),
m nm。
(73)
ml n (0-3), m l (0-7), nml。
(74) \un n, n Unicode 。
(75) : [u4e00-u9fa5]
(76) ( ):[^x00-xff]
(77) :n[s| ]*r
(78) HTML :/<(.*)>.*</1>|<(.*) />/
(79) :(^s*)|(s*$)
(80) Email :w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
(81) URL :http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
(82) :
(83) :onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.get Data('text').replace(/[^u4E00-u9FA5]/g,''))"
(84) : onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData .getData('text').replace(/[^uFF00-uFFFF]/g,''))"
(85) :onkeyup="value=value.replace(/[^d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text ').replace(/[^d]/g,''))"
(86) :onkeyup="value=value.replace(/[W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData(' text').replace(/[^d]/g,''))"
(88) : [\u4e00-\u9fa5]
(89) ( ):[^\x00-\xff]
(90) :
[\s| ]*\r
(91) HTML :/<(.*)>.*<\/\1>|<(.*) \/>/
(92) :(^\s*)|(\s*$)
(93) IP :/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
(94) Email :\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(95) URL :http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
(96) sql :^(select|drop|delete|create|update|insert).*$
(97) :^\d+$
(98) :^[0-9]*[1-9][0-9]*$
(99) :^((-\d+)|(0+))$
(100) :^-[0-9]*[1-9][0-9]*$
(101) :^-?\d+$
(102) :^\d+(\.\d+)?$
(103) :^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
(104) :^((-\d+\.\d+)?)|(0+(\.0+)?))$
(105) :^(-(( )))$
(106) :^[A-Za-z]+$
(107) :^[A-Z]+$
(108) :^[a-z]+$
(109) :^[A-Za-z0-9]+$
(110) :^\w+$
(111) E-mail :^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
(112) URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$
(113) :^[1-9]\d{5}$
(114) :^[\u0391-\uFFE5]+$
(115) :^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
(116) :^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
(117) ( ):^\x00-\xff
(118) :(^\s*)|(\s*$)( vbscript trim )
(119) HTML :<(.*)>.*<\/\1>|<(.*) \/>
(120) :
[\s| ]*\r
(121) :(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
(122) :\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
(123) :(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
(124) IP :(\d+)\.(\d+)\.(\d+)\.(\d+)
(125) :(86)*0*13\d{9}
(126) :(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
(127) ( ):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
(128) :[1-9]{1}(\d+){5}
(129) ( ):(-?\d*)\.?\d+
(130) :(-?\d*)(\.\d+)?
(131) IP:(\d+)\.(\d+)\.(\d+)\.(\d+)
(132) :/^0\d{2,3}$/
(133) QQ :^[1-9]*[1-9][0-9]*$
(134) ( , 5-16 , ):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
(135) 、 、 :^[\u4e00-\u9fa5_a-zA-Z0-9]+$