----------Android Training, Java training, look forward to communicating with you! ----------
I. Overview
1, the concept: conforms to certain rules the expression.
2. Function: Used to specifically manipulate strings.
3, Characteristics: with some specific symbols to represent some code operations, this can simplify writing.
4. Benefits: You can simplify the complex operation of strings.
5, the disadvantage: the more the definition, the longer the regular, the worse the reading.
Ii. common rules
1 , character classes
[ABC]: Denotes a, B, or C
[^ABC]: denotes any character except A, B, or C
[A-za-z]: denotes A to Z or a to Z
[A-d[m-p]]: represents a to D or M to P ([A-dm-p] (set))
[A-z&&[def]]:d, E, or F (intersection)
[A-Z&&[^BC]]: denotes A to Z, except B and C:[ad-z] (minus)
[A-z&&[^m-p]]: Represents a to Z, not M to P:[a-lq-z] (minus)
2 , predefined characters
. : Any character (may or may not match the line terminator)
\d: Number: [0-9]
\d: Non-numeric: [^0-9]
\s: White space characters: [\t\n\x0b\f\r]
\s: Non-whitespace characters: [^\s]
\w: Word character: [a-za-z_0-9]
\w: Non-word characters: [^\w]
3 , boundary match character
^: Beginning of line
$: End of line
\b: Word boundaries
\b: Non-word boundary
\a: Beginning of input
\g: End of last match
\z: End of input, only for final terminator (if any)
\z: End of input
4 , Greedy Quantity Words
X? : x does not appear once or once
X*:x appears 0 or more times
x+: X appears one or more times
X{n}:x exactly n times
X{n,}:x at least n times
X{n,m}x: At least n times, but not more than m times
5 , groups, and captures
Capturing groups can be numbered by calculating their opening brackets from left to right. For example, in an expression ((A) (B (C))), there are four such groups:
1 ((A) (B (C)))
2 \a
3 (B (C))
4 (C)
Group 0 always represents the entire expression, which in substitution is commonly used to match the contents of a group.
Iii. common functions of regular expressions
Regular expression common functions, there are four main types: matching, cutting, replacing and acquiring
1 , Matching
The Boolean matches (string regex) method in the String class. Matches the entire string with a rule, so long as there is a non-conforming rule, the match ends and false is returned.
2 , Cutting
The string[] Split (String regex) method in the String class.
3 , replace
String ReplaceAll (string regex, String replacement) method. Example:
String str = "Zhangsantttxiaoqiangmmmzhan"
str = Str.replaceall ("(.) \\” , );
4 , Get
Get: Is the substring of the string that matches the rule is taken out.
Operation Steps:
(1) Encapsulates a regular expression into an object. Pattern p = pattern.compile (regex);
(2) Associate the regular object with the string to be manipulated. Matcher m = p.matcher (str);
(3) After association, get the regular matching engine.
(4) operate through the engine on a substring that conforms to the rules, such as Find, remove. M.find (), M.group ();
Four, the regular expression application practice
Exercise 1 : String Conversion
1 /*requirements: Convert the following string into: I want to learn to program2 "I am ... I.. I'm going to... To... Want to .... Learn to learn .... Learn to learn ... To make a series of ... Ride... Regulation regulation .... "3 4 Ideas:5 changes an existing string to another string. Use the Replace function. 6 1, you can first remove. 7 2. Then turn multiple duplicate content into a single content. 8 */9 classreplacetest{Ten Public Static voidMain (string[] args) { OneString s = "I am ... I.. I'm going to... To... Want to .... Learn to learn .... Learn to learn ... To make a series of ... Ride... Regulation regulation .... "; A System.out.println (s); - -String regex = "\\.+";//first remove the. thes = S.replaceall (Regex, "");//removed. - System.out.println (s); - -Regex = "(.) \\1+ ";//turn duplicate content into a single content +s = S.replaceall (Regex, "$");//Go heavy - System.out.println (s); + } A}
Exercise 2 : the IP addresses are sorted in order of address segments.
1 /*Requirements: Sort the IP addresses in the order of the address segments. 2 192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.3013 4 Ideas:5 also follow the natural order of the strings, so long as they are 3 bits each. 6 1, according to each paragraph needs the most 0 to make up, then each paragraph will be guaranteed at least 3. 7 2. Keep only 3 bits per paragraph. In this way, all IP addresses are 3 bits per segment. 8 */9 ImportJava.util.*;Ten classipsorttest{ One Public Static voidMain (string[] args) { AString IP = "192.68.1.254 102.49.23.013 10.10.10.10 2.2.2.2 8.109.90.301"; - System.out.println (IP); - theString regex = "(\\d+)"; -ip = ip.replaceall (regex, "00$1");//ensure that each segment has at least three------------- - System.out.println (IP); - +Regex = "0* (\\d{3})"; -ip = ip.replaceall (regex, "$");//only three bits are reserved per paragraph + System.out.println (IP); A atRegex = ""; -string[] arr = ip.split (regex);//Cut by Space - - //defines a TreeSet collection that uses elements to sort naturally -treeset<string > ts =NewTreeset<string>(); - for(String str:arr) { inTs.add (str);//Add - } toRegex = "0* (\\d)";//Replace the extra 0 in front of each paragraph + for(String s:ts) { -System.out.println (S.replaceall (Regex, "$"));//Replace the extra 0 in front of each paragraph the } * } $}
Exercise 3 : Email Address verification
1 //requirements: Verify the email address. 2 classcheckmail{3 Public Static voidMain (string[] args) {4String mail = "[Email protected]";5String regex = "\\[email protected][a-za-z0-9]+ (\\.[ a-za-z]+) {1,3} ";//more precise6Regex = "\\[email protected]\\w+ (\\.\\w+) +";//a relatively less precise match. 7 Booleanb =mail.matches (regex);8 System.out.println (b);9 }Ten}
Exercise 4 : web crawler
/*A web crawler is actually a feature that collects information about a specified information on a network: it can be used to collect messages such as mailboxes, QQ numbers, and so on. */Importjava.net.*;Importjava.util.regex.*;ImportJava.io.*;classspider{ Public Static voidMain (string[] args)throwsexception{//Getfilemail ();Getwebmail (); } //get mail in Web page Public Static voidGetwebmail ()throwsexception{//encapsulate Web page addressURL url =NewURL ("http://tieba.baidu.com/p/1390896758"); //connecting to a serverURLConnection conn =url.openconnection (); //page read stream with bufferBufferedReader br =NewBufferedReader (NewInputStreamReader (Conn.getinputstream ())); String Line=NULL; //define a regular expression that matches the e-mail addressString regex = "\\[email protected]\\w+ (\\.\\w+) +"; Pattern P= Pattern.compile (regex);//Encapsulating Regular Expressions//reading Web page data while(line = Br.readline ())! =NULL){ //Regular Correlation DataMatcher m =P.matcher (line); //find a matching mailbox while(M.find ()) {System.out.println (M.group ());//Output Matching mailbox } } } //gets the e-mail address in the specified document. Use the Get feature. Pattern Matcher Public Static voidGetfilemail ()throwsexception{//encapsulate a file as an objectFile File =NewFile ("E:\\java study\\practice\\day25\\mail.txt"); //to create a read stream with a bufferBufferedReader br =NewBufferedReader (Newfilereader (file)); String Line=NULL; //Defining Regular ExpressionsString regex = "\\[email protected][a-za-z]+ (\\.[ a-za-z]+) + "; //creating pattern objects, encapsulating regular ExpressionsPattern p =pattern.compile (regex); //reading data from a file while(line = Br.readline ())! =NULL){ //off-stream stringMatcher m =P.matcher (line); while(M.find ())//look for a matching string {System.out.println (M.group ());//output a matching string } } }}
----------Android Training, Java training, look forward to communicating with you! ----------
Black Horse Programmer--"Java Foundation"--Regular expression