顯示具有 regular expression 標籤的文章。 顯示所有文章
顯示具有 regular expression 標籤的文章。 顯示所有文章

2012年8月3日 星期五

python regular expression "match" vs "search"

常常弄混re.match 與 re.search的差別
寫下來以免又忘了。

re.match("pattern","string")是比對該字串的「開頭」是否符合該表示式

re.search("pattern", "string")則尋找string中任何位置是否有相符者

兩者皆回傳MatchObject,若找不到則回傳None

2012年4月17日 星期二

正規表示式配對標籤

最近在寫別人的作業時,要用到正規表示式抓取成對標籤內的文字內容

例如說:
<doc>段落一</doc> <doc> 段落二 </doc>
直覺的想法便是用 " <doc>.*</doc>"分別捕捉到段落一與二
 然而正規表示式具有 greedy 的特性
故實際配對為
<doc>段落一</doc> <doc> 段落二 </doc> 
如果想使用non greddy的正規表示式
需改寫為 "<doc>.*?</doc>" 
配對結果:
<doc>段落一</doc> <doc> 段落二 </doc> 
..........不過這樣寫能通,還是有點摸不著頭緒

參考資料
http://www.exampledepot.com/egs/java.util.regex/greedy.html