JAVAにおける正規表現

23310 ワード

JAvaで使用される正規表現の構築要素:
  

    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]+$