Groovy正規表示式

2021-05-24 07:56:17 字數 1450 閱讀 3836

regex查詢操作符  =~

返回matcher物件

regex匹配操作符  ==~

返回boolean型,匹配的是整個 字串

利用gstring我們可以做一些有趣的事情。

word=//w+/

assert 'asdasdadasd'==~/($word $word)*/

word是不是比 //w+/更加容易理解?

通用形式

string =~pattern

groovy中

1,string有乙個方法 eachmatch它以乙個規則pattern和乙個閉包作為引數

mystr = 'this rain in spain stays mainly in the plain!'

bounds=//b/

pattern=/$bounds/w*ain$bounds/

found=' '

mystr.eachmatch(pattern)

assert found==' rain spain plain '

2,matcher也有乙個叫each的方法,它以閉包為引數

(mystr=~pattern).each

結果是一樣的

print mystr.replaceall(pattern)

結果是 this r_ in sp_ stays m_ly in the pl_!

其中it指向匹配子串這和一樣的效果

在此發現了string的 - + 加減符號的用法

mystr = 'this rain in spain stays mainly in the plain!'

print mystr-'a'-'a'-'a'

結果會減掉第一次第二次第三次出現的a

而+是在字串尾部加上的。

關於matcher

返回的matcher是陣列

如果pattern即模式裡面沒有用到組

可以通過matcher.hasgroup()檢查

這macther[x]不是乙個陣列

否則matcher[x]同樣也是乙個陣列,比如macher[x]=['all','g1','g2'],其中第乙個為全部匹配子串,g1,g2這些後面的為組匹配子串

regex模式操作符  ~string

~//w*/  返回的是pattern物件

如assert (~/../).iscase('ab')

pattern物件的使用 除了上面的iscase(str)方法外,還有在switch語句和grep方法中的應用。

它還可以用呀switch語句和陣列中

switch('ab'){

case  ~/../:assert true;break

default :assert false; 

beasts=['a','b','cc']

assert beasts.grep(~/./)==['a','b']

Groovy學習系列 正規表示式

正規表示式是在文字中尋找子字串的一種模式。1 定義正規表示式 groovy 中正規表示式定義是通過 正規表示式 定義的 def regex chese 2 常用正規表示式 表示式 匹配意義 示例 行首。匹配的字元必須以指定字串開頭 行尾。與字串的尾部或換行符之前的位置相匹配。不包括換行符本身 匹配除...

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...