前景:多次遇到Java正则表达式的使用,比如密码框输入字符格式的匹配,从第三方接口获得原始数据需用正则表达式规范取出使用等,以此总结一下,加深印象
正则表达式 表达了一中字符串的模式,其功能可用来搜素,编辑,处理文本等,在多种语言中均有体现。
上例子:
string pattern="Hello World" 该字符串pattren就是一个简单的正则表达式 匹配的就是"Hello World" 字符串
如:1.
String line="study hard dayday up!sgy666 sure?"
String pattern=“()()()”” //该字符串就是一种匹配模式,相匹配的有0或者多个字符串
Pattern r=Pattern.compile(pattern)//创建Pattern对象
Matcher m=r.matcher(pattern,line);
语法
java语法字符串中反斜线为转义字符
System.out.print("\\"); // 输出为 \
System.out.print("\\\\"); // 输出为 \\
字符 | 说明 |
---|---|
\ | 将下一字符标记为特殊字符、文本、反向引用或八进制转义符。例如, n匹配字符 n。\n 匹配换行符。序列 \\\\ 匹配 \\ ,\\( 匹配 (。 |
^ | 匹配输入字符串开始的位置。如果设置了 RegExp 对象的 Multiline 属性,^ 还会与"\n"或"\r"之后的位置匹配。 |
$ | 匹配输入字符串结尾的位置。如果设置了 RegExp 对象的 Multiline 属性,$ 还会与"\n"或"\r"之前的位置匹配。 |
* | 零次或多次匹配前面的字符或子表达式。例如,zo* 匹配"z"和"zoo"。* 等效于 {0,}。 |
+ | 一次或多次匹配前面的字符或子表达式。例如,"zo+"与"zo"和"zoo"匹配,但与"z"不匹配。+ 等效于 {1,}。 |
? | 零次或一次匹配前面的字符或子表达式。例如,"do(es)?"匹配"do"或"does"中的"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?'。注意:您不能将空格插入逗号和数字之间。 |
这里只展示部分字符说明
捕获组(匹配组)
捕获组是通过从左至右计算其开括号来编号。例如,在表达式((A)(B(C))),有四个这样的组(即复合该模式的字符串):比如A()
- ((A)(B(C))) 本身
- (A)
- (B(C))
- (C)
可能有点迷,下面多出例子理解