正規表現記号の特殊な詳細_一般的な正規表現_Javaにおける正規表現の使用

9417 ワード

正規表現記号の詳細
  • 修飾子:1つのコンポーネントが何回現れるかを指定します.1.「*」,「+」,「?」を修飾子として使用します.
  • "*":               。
    	  ,zo*     "z"    "zoo"。*    {0,}。
    	
    "+":               。
    	  ,'zo+'     "zo"    "zoo",      "z"。+     {1,}。
    	
    "?":               。
    	  ,"do(es)?"      "do" 、 "does"    "does" 、 "doxy"    "do" 。?     {0,1}。
    
  • 限定子として"{}"を使用:
  • "{n}": n        。      n  。
    	  ,'o{2}'      "Bob"    'o',      "food"      o。
    "{n,}": n        。    n  。
    	  ,'o{2,}'      "Bob"    'o',     "foooood"      o。'o{1,}'     'o+'。'o{0,}'      'o*'。
    "{n,m}": m   n       ,  n <= m。     n        m  。
    	  ,"o{1,3}"     "fooooood"       o。'o{0,1}'     'o?'。
    	                 。
    
  • 正規表現の特殊文字:**注:特殊文字がテキストとして使用される場合、「」によってエスケープするには、
  • という特殊文字が含まれます.
    "()":
    	                。
    	              ,             Matches    
    	
    "*":
    	              
    
    "+":
    	              	
    
    "."
    	       
    "[": "?": , "\": 、 、 、 。 , 'n' 'n'。'
    ' 。 '\\' "\", '\(' "("。 "^": , , "{": "|":
  • 共通メタ文字とその意味:
  • "."	        
    "\d"	  0~9      
    "\D"	           
    "\s"	       ,   :   , tab,   
    "\S"	       
    "\w"	          
    "\W"	           
    "\p{Lower}"	    [a-z]
    "\p{Upper}"	    [A-Z]
    "p{ASCII}"	ASCII  
    "\p{Alpha}"	  
    "\p{Digit}"		  [0-9]
    "\p{Alnum}"	     
    
  • ロケータ:文字列または単語の境界を記述します.^:文字列の開始位置$:文字列の終了位置b:単語の前後境界(文字とスペースの位置)B:非単語の前後境界(単語内で行う)注:
  •               。
                               ,        ^*       。
                  ,             ^   。
        ^                   。
                   ,              $   。
    
  • 重複する位置をカッコで決定する:
  • ^a$	  a
    ^a{4}$	aaaa
    ^a{2,4}$	aa,aaa aaaa
    ^a{1,3}$	a,aa aaa
    ^a{2,}$	      a    
    ^a{2,}	 :aardvark aaab, apple  
    a{2,}	 :baad aaa, Nantucket  
    \t{2}	     
    .{2}	       
    ^[a-zA-Z0-9_]{1,}$      //            、           
    ^[1-9][0-9]{0,}$        //        
    ^\-{0,1}[0-9]{1,}$      //       
    ^[-]?[0-9]+\.?[0-9]+$   //       
    
  • カッコの使用:カッコを使用してオプションを囲むと、関連するオプションがキャッシュされ、最初のオプションの前に「?:」を使用して副作用を除去できます.「?=」:検索文字列を一致させるために、丸カッコ内の正規表現モードに一致し始める任意の位置で順方向に事前調査を行います.この一致は、後で使用する必要はありません.各一致は、事前調査を含む文字から
  • ではなく、前回の一致から始まります.
    "Windows(?=95|98|NT|2000)"   "Windows2000"  "Windows",     "Windows3.1"  "Windows"       
    "?!":     ,                           。
     :  "Windows(?!95|98|NT|2000)"   "Windows3.1"  "Windows",     "Windows2000"  "Windows"。      
    
  • 中括弧の使用:
  •        /chapter [12345]/     /chapter [1-5]/                                 ,      
    [-a-z]
    [a-z-]               
    [!--]
    [!-~]           ,           
    [^1-5]      1-5  
     :/^Chapter|Section [1-9][0-9]{0,1}$/          Chapter,          Section           
    "|"          
                  : /^(Chapter|Section) [1-9][0-9]{0,1}$/        ?:        
    
    [a-z] //          
    [A-Z] //          
    [a-zA-Z] //        
    [0-9] //        
    [0-9\.\-] //       ,      
    [ \f\r\t
    ] // : [^a-z] // [^\\\/\^] // (\)(/)(^) [^\"\'] // (") (')
  • 合計例:
  • /\b([a-z]+) \1\b/gi	           。
    /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/	   URL     、 、       。
    /^(?:Chapter|Section) [1-9][0-9]{0,1}$/	       。
    /[-a-z]/	a z 26       - 。
    /ter\b/	   chapter,     terminal。
    /\Bapt/	   chapter,     aptitude。
    /Windows(?=95 |98 |NT )/	   Windows95 Windows98 WindowsNT,        , Windows              。
    /^\s*$/	    。
    /\d{2}-\d{5}/	       、        5        ID  。
    /]*)?>[\s\S]*/	   HTML   。
    

    常用正規表現
    1.数値を検証する式:
      :^[0-9]*$
    n    :^\d{n}$
      n    :^\d{n,}$
    m-n    :^\d{m,n}$
             :
    	^(0|[1-9][0-9]*)$
                   :
    	^([1-9][0-9]*)+(\.[0-9]{1,2})?$
     1-2         :
    	^(\-)?\d+(\.\d{1,2})$
      、  、   :
    	^(\-|\+)?\d+(\.\d+)?$
             :
    	^[0-9]+(\.[0-9]{2})?$
     1~3       :
    	^[0-9]+(\.[0-9]{1,3})?$
          :
    	^[1-9]\d*$   ^([1-9][0-9]*){1,3}$   ^\+?[1-9][0-9]*$
          :
    	^\-[1-9][]0-9"*$   ^-[1-9]\d*$
        :
    	^\d+$   ^[1-9]\d*|0$
        :
    	^-[1-9]\d*|0$   ^((-\d+)|(0+))$
         :
    	^\d+(\.\d+)?$   ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
         :
    	^((-\d+(\.\d+)?)|(0+(\.0+)?))$   ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
        :
    	^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
        :
    	^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$   ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
       :
    	^(-?\d+)(\.\d+)?$   ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
    

    2.検証文字の式:
      :
    	^[\u4e00-\u9fa5]{0,}$
         :
    	^[A-Za-z0-9]+$   ^[A-Za-z0-9]{4,40}$
       3-20     :
    	^.{3,20}$
     26           :
    	^[A-Za-z]+$
     26             :
    	^[A-Z]+$
     26             :
    	^[a-z]+$
        26           :
    	^[A-Za-z0-9]+$
       、26                :
    	^\w+$   ^\w{3,20}$
      、  、       :
    	^[\u4E00-\u9FA5A-Za-z0-9_]+$
      、  、            :
    	^[\u4E00-\u9FA5A-Za-z0-9]+$   ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
          ^%&',;=?$\"   :
    	[^%&',;=?$\x22]+
          ~   :
    	[^~\x22]+
    

    3.特別需要表現:
    Email  :
    	^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
      :
    	[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(/.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+/.?
    InternetURL:
    	[a-zA-z]+://[^\s]*   ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
        :
    	^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
        ("XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX" "XXXXXXXX):
    	^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
          (0511-4405222、021-87888822):
    	\d{3}-\d{8}|\d{4}-\d{7}
             (      ,3-4   ,7-8     ,1-4    ): 
    	((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)	
        (15 、18   ),        ,        X:
    	(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
          (    ,  5-16  ,         ):
    	^[a-zA-Z][a-zA-Z0-9_]{4,15}$
      (     ,   6~18  ,      、      ):
    	^[a-zA-Z]\w{5,17}$
       (               ,        ,    8-10   ):
    	^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
       (               ,        ,   8-10  ):
    	^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
        :
    	^\d{4}-\d{1,2}-\d{1,2}
       12  (01~09 1~12):
    	^(0?[1-9]|1[0-2])$
        31 (01~09 1~31):
    	^((0?[1-9])|((1|2)[0-9])|30|31)$
          :
    	               :
    		"10000.00"   "10,000.00",     " "   "10000"   "10,000":^[1-9][0-9]*$
             0     ,  ,         "0"   ,           :
    	^(0|[1-9][0-9]*)$
      0      0     .              :
    	^(0|-?[1-9][0-9]*)$
         0             0   .    0    .       ,          。                 :
    	^[0-9]+(.[0-9]+)?$
          ,          1  ,  "10."     ,   "10"   "10.2"     :
    	^[0-9]+(.[0-9]{2})?$
                    ,         ,    :
    	^[0-9]+(.[0-9]{1,2})?$
                 .              ,      :
    	^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
    1 3   ,          +3   ,      ,     :
    	^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
    xml  :
    	^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
              :
    	[\u4e00-\u9fa5]
         :
    	[^\x00-\xff] (      ,            (          2,ASCII   1))
             :
    	
    \s*\r ( ) HTML : ]*>.*?|<./> ( :^\s*|\s*$ (^\s*)|(\s*$) ( ( 、 、 ), ) QQ : [1-9][0-9]{4,} ( QQ 10000 ) : [1-9]\d{5}(?!\d) ( 6 )

    備考:これが最終結果です.「+「使える」*」の代わりに、空の文字列も受け入れられると思うなら(おかしい、なぜ?)最後に、関数を使うときにそのスラッシュを外すのを忘れないでください.一般的な間違いはここにあります.
    JavaのPatternとMatch文字列マッチング用
  • Pattern,Match使用フロー:1.Pattern静的関数Pattern compile(String regex)を使用して正規表現をコンパイルする.2.Patternオブジェクトを使用してMatcher matcher(CharSequence input)を呼び出して指定した文字列に対してMatcherオブジェクト(マッチング)を返す.3.マッチング器を使用して具体的なマッチングまたは検索方法を実行する.最も簡単な例としては
  • .
    //        a*b
     Pattern p = Pattern.compile("a*b");
     //     
     Matcher m = p.matcher("aaaaab");
     //       ,                 
     boolean b = m.matches();
    

    Patternは一般的に正規表現をコンパイルし、Matcherオブジェクトを得るためのものであり、その他の使い方は述べる.
  • MatcherのAPI:よく使われるMatcherメソッド
  • を書く
    public boolean find() :
    	                   ,     true,   false.
    	find(int start)//             
    public boolean matches():
    	                   .   true,   false.
    public String replaceAll(String replace):
    	                   replace
    
  • 簡単な例:
  • public class Demo4 {
        private static Pattern compile =  Pattern.compile("\\d");
        public static void main(String[] args) {
            Matcher matcher = compile.matcher("jiojdas90989diuahsd");
            while(matcher.find()){
                System.out.println(matcher.group());
            }
        }
    }
    //         
    

    上记は间违いがあって、また指摘して、もし私が书くのが悪くないと思ったら、また少しいいことを頼んで、多く支持して、O(∩∩)O~~