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
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
而所有的非單詞字母符號的萬用字元為“/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/
而“^”則注意要跟“[^]”區別開來,“^”表示以什麼開頭,而“[^]”則表示非。如下面所示的例子。
下面的例子表示非a、b、c三個字母的所有符號:
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 以相同的序號代表的組所匹配的內容