Java正则表达式简单应用

it2023-04-01  74

Java正则表达式


正则表达式简述

正则表达式正则表达是Java中比较矛盾的知识点,因为使用起来可以很简单也可以相当地有难度,但是对于字符串操作来说应用得当则事半功倍,字符串查找,搜索,匹配,替换等等。

基本语法

Java 提供了 java.util.regex 包来与正则表达式进行模式匹配。 java.util.regex 包含了3个类

Pattern 类

Matcher 类

PatternSyntaxException

限定符说明.任意英文字母比如a-z,表示从a到z?当该字符紧跟在任何一个其他限制符(*,+,?,{n},{n,},{n,m})后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。例如,对于字符串“oooo”,“o+?”将匹配单个“o”,而“o+”将匹配所有“o”。\反斜杠, 单独的反斜杠做为转义字符,与其他特殊字符一起使用。如果想匹配反斜杠本身,需要转义。两个反斜杠实际匹配一个反斜杠n字符的8进制表示.n 在0至7之间取值\t缩进符.\n换行符 (unicode: ‘\u000A’)\r回车符 (unicode: ‘\u000D’)\d匹配任意数字 [0-9]\D匹配任意非数字 [^0-9]\s匹配任意空白符 (空格, 缩进, 换行,回车)\S匹配任意非空白符\w匹配任意单词\W匹配任意非单词 限定符说明[a-z]匹配小写a to z范围中任一个字符,又如[abc] 匹配 a, 或 b 或 c[A-Z]匹配大写A to Z范围中任一个字符[a-zA-Z]匹配小写a to z或大写A to Z范围中一个字符[0-9a-z]匹配小写0 to 9或a to z范围中一个字符[^abc]匹配不是a,b,c 的字符,是否定匹配[a-d[m-p]]匹配a到d之间字符或 m到p之间字符,是并集匹配

例子:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class RegexMatches { public static void main( String args[] ){ // String to be scanned to find the pattern. String line = "Welcome To JAVA WORLD QT3000! OK?"; String pattern = "(.*)(\\d+)(.*)"; // Create a Pattern object Pattern r = Pattern.compile(pattern); // Now create matcher object. Matcher m = r.matcher(line); if (m.find( )) { System.out.println("Found value: " + m.group(0) ); System.out.println("Found value: " + m.group(1) ); System.out.println("Found value: " + m.group(2) ); } else { System.out.println("NO MATCH"); } } }

结果如下:

Found value: Welcome To JAVA WORLD QT3000! OK? Found value: Welcome To JAVA WORLD QT300 Found value: 0
最新回复(0)