瀏覽單個文章
Adsmt
Golden Member
 
Adsmt的大頭照
 

加入日期: Feb 2004
您的住址: 從來處來
文章: 2,765
引用:
作者darkangel
re 的 ? 從來都不是匹配 any character,從 posix re, extension, 或是 pcre 到各平台不同實作,所有的 ? 基本上都是 greedy switch,不是 match any character。
有人會說,那我 ls 的 ? 是 match any character 啊,* 是 match any string,很抱歉,那東西叫 glob/wildcard,別把這兩者搞混,真不懂我在講什麼,請在 linux 下執行 man 7 glob
http://man7.org/linux/man-pages/man7/glob.7.html
re 在各不同的實作裡,除了版本不同有所擴展之外,基本的 match rule 都是完全一樣。pcre > re ex > re,大都是一層層堆上去的,也就是 perl re 跟 pcre 提供最多功能,re ex 次之,posix re 最少。
至於各不同應用程式之間實作最大的差異主要是在於 \d 這類跳脫字元的定義,所以我寫 re 一直都會避開使用 \d 這類的寫法,而是用 [0-9] 這種標準寫法。
因為我寫過啊... 我 20 年前用 ...

抱歉真的有,不要以為LINUX就是全世界了.....

很多編輯器自帶的 RE 語法和 LINUX, Perl 的標準並不同,當然你也可以說那是不入流的,但那確實存在。絕不是你說的 "在各不同的實作裡,除了版本不同有所擴展之外,基本的 match rule 都是完全一樣。"

不信去google一下ultraedit帶的三種不同版本的 RE 引擎,看看我說的對不對。
舊 2015-09-27, 01:52 AM #23
回應時引用此文章
Adsmt現在在線上