1. 程式人生 > >Groovy Tip 19 正則表示式 二

Groovy Tip 19 正則表示式 二

                             Groovy Tip 19 正則表示式

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我們在前一篇的《正則表示式》中重點談到了Groovy語言的一些重要的萬用字元,可以說那些萬用字元是一些標準的和基礎的萬用字元。看過了那些萬用字元以後,我就常常在想,Groovy語言作為一種敏捷性的動態語言,會不會有一些更為方便的萬用字元呢?

如我們所願,Groovy語言為我們提供瞭如下的一些更為簡便的萬用字元:

/d數字字元

/D非數字字元

/s空格符

/S非空格符

/w文字字元

/W非文字字元

/b單詞標記

^語句行的開頭

$語句行的結尾

可以看到,這些萬用字元正是在以前萬用字元的基礎上,對一些常用的正則表示式做進一步的通配,以達到簡化我們編碼的目的。下面試舉幾個例子來看看這些萬用字元的用法。

萬用字元“/d”就是對數字字元的通配,比如:

def str3 = '3'

println str3 ==~ //d/

就列印“true”,而

def str8 = 'a'

println str8 ==~ //d/

就列印“false”。

我們在前一篇的《正則表示式》中有一個匹配數字的例子,是這樣的:

def str = '1000.31'

def

re = /[0-9]+(/.[0-9]+)?/

println str ==~ re

這個正則表示式就有點長了,我們現在使用“/d”萬用字元就可以把上面的正則表示式簡化成下面的樣子:

def re = //d+(/./d+)?/

def str = 1000.31

println str ==~ re

而“/D”匹配的則是非數字,如:

def str4 = 'w'

println str4 ==~ //D/

/s”匹配的是空格,如:

println'' ==~ //s+/

所有非空格的萬用字元則是“/S”。

/w”匹配的是單詞的字母,相當於“/[a-zA-Z]/”,如:

def str1 = 'a'

println

str1 ==~ //w/

而所有的非單詞字母符號的萬用字元為“/W”,如:

def str5 = '&'

println str5 ==~ //W/

/b”指的是單詞標記,如:

def hw = 'hello'

println hw ==~ //b/w+/b/

以“ed”結尾的過去式的匹配為:

def word = 'moved'

println word ==~ //b/w+ed/b/

而下面的例子則不匹配:

def w1 = 'ran'

println w1 ==~ //b/w+ed/b/

而“^”則注意要跟“[^]”區別開來,“^”表示以什麼開頭,而“[^]”則表示非。如下面所示的例子。

下面的例子表示非abc三個字母的所有符號:

println'f' ==~ /[^abc]/

下面的例子則不匹配:

println'b' ==~ /[^abc]/

而下面的例子則表示以“abc”開頭的匹配:

println'abcd' ==~ /^abc./

而下面的例子卻不匹配:

println'adcd' ==~ /^abc./

相關推薦

Groovy Tip 19 表示式

                             Groovy Tip 19 正則表示式 二 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 我們在

python 表示式() 元字元使用規則

1)----------匹配單個字元與數字------ . -->匹配除換行符以外的任意字元 [] -->[]是字元集合,表示匹配[]中所包含的任意一個字元 [a-z] -->匹配任意小寫字母 [A-Z

【LeetCode & 劍指offer刷題】字串題17:19 表示式匹配(10. Regular Expression Matching)

【LeetCode & 劍指offer 刷題筆記】目錄(持續更新中...) 19 正則表示式匹配(hard,瞭解即可) 題目描述 請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式中的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)

表示式次Matcher.find時 java.lang.StackOverflowError的解決方法

在最近一個java專案中使用了正則表示式,抓取網頁中的內容,明明很正確的正則表示式,但在Matcher.find時報錯了: public static List<String> findStrs(String regx,String sourceSt

表示式匹配多個表示式模式

re1|re2表示匹配正則表示式re1或者re2 >>> m=re.match('ve|be','better')   >>> print(m)   <_

Python3表示式()re模組

在Python3正則表示式(一)基本語法規則已經記錄了正則表示式的基本規則,接下來將寫一下在python當中如何利用正則表示式去匹配字串,即re模組中功能函式的使用。 使用時要先進行匯入re模組:import re 一、re模組中常用的函式 1.c

面試題19表示式匹配

題目:實現一個函式用來匹配包含‘.’和'*'的正則表示式,'.'可以代表任意字母,'*'表示他前面的字元可以出現>=0次, #include<iostream> using namespace std; bool matchCore(char *str, c

python表示式:literal、re1|re2 和 .

程式碼:import re #literal字面值 m=re.findall('a','abacd') print(m) #re1|re2或 m=re.findall('d|ac','abacd')

groovy簡明教程(表示式

4.正則表示式 groovy吸取了javascript的優點,用後斜線表示正則表示式,避免了java中多次寫反斜槓轉義。並提供了3個操作符: 寫道 =~ 查詢;==~ 匹配;~String 模式;   str = 'god is a gril, believe or not?' matcher = str

表示式 - - java.util.regex 包 ()

java.util.regex 包主要包括以下三個類: Pattern 類: pattern 物件是一個正則表示式的編譯表示。Pattern 類沒有公共構造方法。要建立一個 Pattern 物件,你必須首先呼叫其公共靜態編譯方法,它返回一個 Pattern 物件。該方法接受一個正則表示式

劍指offer 面試題19表示式匹配

請實現一個函式用來匹配包括'.'和'*'的正則表示式。模式中的字元'.'表示任意一個字元,而'*'表示它前面的字元可以出現任意次(包含0次)。 在本題中,匹配是指字串的所有字元匹配整個模式。例如,字串"aaa"與模式"a.a"和"ab*ac*a"匹配,但是與"aa.a"和"ab*a"均不匹配 c

python html抓取,並用re表示式解析(

需求: url: “http://search.jd.com/Search?keyword=幼貓貓糧&enc=utf-8#filter” 給出一個jd_search(keyword)方法,keyword為你要查詢的東西,比如:貓糧、手機,替換上面url中的keyword,得到一個新網

【知識積累】()、深入Regex(表示式

\:將下一個字元標記符、或一個向後引用、或一個八進位制轉義符。例如,“\\n”匹配\n。“\n”匹配換行符。序列“\\”匹配“\”而“\(”則匹配“(”。即相當於多種程式語言中都有的“轉義字元”的概念。 ^:匹配輸入字串的開始位置。如果設定了RegExp物件的Multiline屬性,^也匹配“\n

Python高階程式設計(表示式

Python正則表示式 正則表示式是一個特殊的字元序列,它能幫助你方便的檢查一個字串是否與某種模式匹配。 Python 自1.5版本起增加了re 模組,它提供 Perl 風格的正則表示式模式。 re 模組使 Python 語言擁有全部的正則表示式功能。 compile 函式根據一個

Groovy入門-字串處理與表示式

字串處理-1 println ‘lxt008 said "Groovy"' println "lxt008 said 'Grails'" def str1 = 'Groovy&Grails&lxt008' println str1[4]

Groovy 表示式

文章目錄 背景 Groovy正則表示式語法 原字元問題 Pattern 和 Matcher Pattern.matches 和 Pattern.matcher Matcher 中的capturing g

詳解表示式實現代身份證號碼驗證

最近專案需要對身份證進行比較合理的篩選,並不想用到第三方介面,所以寫了個方法: 包括支援身份證號合法性驗證, 支援18位身份證號,支援地址編碼、出生日期、校驗位驗證. 基本上這樣就可以了. IdCodeValid:function(code){ //身份證號合法性驗證 //支援15位和18位

python爬蟲()----表示式

正則表示式 本部落格主要講正則表示式在爬蟲網頁解析中的作用 需要的是python的re模組 python版本:3.x (一) 正則表示式的基本知識 1 匹配字元 常見匹配模式—匹配字元 模式 描述

python~表示式總結

目錄 編譯正則表示式 re.compile(pattern,flags=0) pattern.match pattern.search pattern.findall 1.正則表示式無圓括號 2.正則表示式中含有1個圓括號 3.正則表示式中含有多個圓括號 pa

python表示式詳解():特殊字元序列

內容提要: 說明:僅供學習交流使用 二、python正則表示式中的特殊字元序列 \number   \A  \Z   \b    \B    \d  \D   \s  \S  \w   \W      \\ 2.1\number  以相同的序號代表的組所匹配的內容