java 正则表达式
1. 什么是正則表達式
正則表達式使用單個字符串來描述、匹配一系列符合某個句法規則的字符串。正則表達式可以用形式化語言理論的方式來表達。正則表達式由常量和算子組成,它們分別指示字符串的集合和在這些集合上的運算
2. 基本語法
符號
-----優先級
* 具有最高優先級代表前面的字符可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,「0*42」可以匹配42、042、0042、00042等
() 第二優先級圓括號可以用來定義操作符的范圍和優先度。例如,「gr(a|e)y」等價于「gray|grey」,「(grand)?father」匹配father和grandfather。
| 最低優先級 豎線符代表選擇(即并集)。例如「gray|grey」可以匹配grey或gray。
-----數量
+ 加號代表前面的字符必須至少出現一次。(1次、或多次)。例如,「goo+gle」可以匹配google、gooogle、goooogle等;
? 問號代表前面的字符最多只可以出現一次。(0次、或1次)。例如,「colou?r」可以匹配color或者colour
* 星號代表前面的字符可以不出現,也可以出現一次或者多次。(0次、或1次、或多次)。例如,「0*42」可以匹配42、042、0042、00042等。
{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?」。請注意在逗號和兩個數之間不能有空格。
比如
(ab)c==abc
a|(b(c*))==a|bc*
a|b* 代表{a , ""(空),b,bb,bbb, ...}
(a|b)* 代表 由包括空串、任意數目個a或b字符組成的所有字符串的集合
ab*(c|ε)代表開始于一個a接著零或多個b和最終可選的一個c的字符串的集合
3. 正則上組的概念
例如((A)(B(C)))
第0組((A)(B(C)))
第一組((A)(B(C)))
第二組 (A)
第三組 (B(C))
第四組 (C)
4. java上應用
等價于
表示用 規則 a*b a可以出現0~n去匹配字符串"aaaaaab"
輸出為:
學會勇敢
總結
以上是生活随笔為你收集整理的java 正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序之通过Canvas生成图片保存
- 下一篇: 微信小程序,引用扩展组件提示“没有找到可