很多直譯式的程式語言皆有支援正規表示式(R.E., Regex)(https://en.wikipedia.org/wiki/Regular_expression),如Perl,PHP,Shell Scripting 而 Linux 下的shell 操作環境更是可以利用 sed,grep 加上正規表示式來置換或是找尋想要的資料,表示的範圍可用 / Regrex / 或 "Regex " 或 ' Regex ' 來給定。正規表示式大概遵從以下幾種規範: 1. ^ 符號代表比對字串之起頭位置,而 $ 符號代表比對字串結束位置,假設有檔案內容如 圖5-4-1,我們利用指令 grep -n 來搜尋並印出有吻合字串的行數。每一行為算一組字串。 (圖5-4-1) 如圖5-4-1 可知道有6 (行) 組字串,第一個比對 ' se'(空格加上se),找到第一組。接著找起頭含M的,就找到第三組字串。接著找含 t 結尾之字串,便找到了第一,二,四組。最後找由數字結尾的字串,便出現第六組。以上皆為比對有列出的單一字串。 2. 若要比對可能有重複的字串,就需使用重複次數符號,如 * 與 ?,+為重複一次以上,或列舉次數{n}與{n,m},其中n為最少重複次數,m為最多重複次數,如圖5-4-2,此時要用 egrep 指令來操作才能看出,man egrep可查閱 egrep 操作。 (圖5-4-2) 圖5-4-2找出RegEx.txt 內容包含字串 s 的任意重複字數,s?代表s無重複或重複一次該字元的字串為吻合。接著指定找 s 最多出現兩次的字串 s{2},僅找到第三組與第五組,有僅包含 ss。 再來找數字978的任意重複數字,與最少重複一次的結果,才有出現第六組的字串,但當最少重複設定兩次,卻是無吻合,所以亦可將條件設定 [0-9]+ ,表示任意數字的集合重複最多三次。 * 與 ? 等特殊字元,若是為欲搜尋之標的物,請用符號 \ 來保留,如 \*。 3. 除此之外,亦可用 [ ] 內來列舉欲比對的字元,如 [ x | y | z ] 或 [0-9 | a-z | A-Z ]。如圖5-4-3 利用條件 [^0-9]* 來找出不含數字
No more ask for anyone's help. 一個愛好 3C 的野蠻人,以野蠻的方式與描述口吻,分享3C 的使用心得與技術。2016.08 改為操作不求人系列文章。你知道,我知道,獨眼龍也知道