groovy中對於正則表達式的書寫進行了簡化,同時引入了新的操作符,使得正則表達式使用起來比較方便簡單。 對於書寫的改進: 比如 assert "\\d" == /\d/ 也就是在groovy中/\d/本身也是字元串,我們可以簡單地把/看成是字元串中的雙引號,因此杠杠中間的內容是不需要進行轉義的。 ...
groovy中對於正則表達式的書寫進行了簡化,同時引入了新的操作符,使得正則表達式使用起來比較方便簡單。
對於書寫的改進:
比如
assert "\\d" == /\d/
也就是在groovy中/\d/本身也是字元串,我們可以簡單地把/看成是字元串中的雙引號,因此杠杠中間的內容是不需要進行轉義的。
groovy中的正則表達式的核心部分依然採用的是JAVA中的類,Pattern、Matcher等,不過groovy為了簡化正則的使用,引入了三個操作符:
查找(find)操作符:=~
匹配(match)操作符:==~
模式(pattern)操作符:~String
我們用一個例子來說明上述操作符的用法。
比如我們有一個字元串:
def s = "She sells sea shells at the sea shore of seychelles"
def matcher = s =~ /s.a/
assert finder instanceof java.util.regex.Matcher
也就是s =~ /s.a/ 的返回結果是Matcher類型。
而如果用
def isMatched = s ==~ /s.a/
上述的返回值是布爾類型,用於判斷是否匹配上了。
對於
def pattern = ~/s.a/
上述返回的是Pattern類型。
因此,我們綜述一下這三個操作符:
查找(find)操作符:=~ 返回Matcher類型
匹配(match)操作符:==~ 返回boolean類型
模式(pattern)操作符:~String 返回Pattern類型
具體Matcher類、Pattern類有哪些方法可以參考JAVA中的定義。