一葉笑天
          雄關漫道真如鐵, 而今邁步從頭越。 從頭越, 蒼山如海, 殘陽如血。
          posts - 73,comments - 7,trackbacks - 0
           

          正則表達式元字符

          元字符

          功能

          例子

          匹配內容

          ^

          行起始錨

          /^love/

          匹配所有以love開始的行

          $

          行結束錨

          /love$/

          匹配所有以love結束的行

          .

          匹配單字符

          /l..e/

          匹配行中包含l緊跟兩個字符然后是e的行

          *

          匹配0個或者多個前導字符

          / *love/

          匹配0個或者多個空格,緊跟love

          [ ]

          匹配集合中的一個

          /[Ll]ove/

          匹配行中包含love 或者Love

          [x–y]

          匹配一個范圍集合中的一個字符

          /[A–Z]ove/

          匹配字符從A-Z緊跟著ove

          [^ ]

          匹配一個不在集合中的字符

          /[^A–Z]/

          匹配任意字符不在A Z之間

          \

          轉義一個元字符

          /love\./

          匹配包含love,緊跟著.

          其他的元字符支持

          \<

          單詞開始錨

          /\<love/

          匹配行中含有單詞以love開始 (supported by vi and grep)

          \>

          單詞結束錨

          /love\>/

          匹配行包含單詞以love結束 (supported by vi and grep)

          \(..\)

          標簽匹配

          /\(love\)able \1er/

          可以使用到9個標簽, 起始部分是模式。例如, 模式love被保存為標簽1, 被后面引用為\1。在這個例子中,搜索模式包含lovable后緊跟lover (supported by sed, vi, and grep)

          x\{m\} or

           

          x\{m,\} or

           

          x\{m,n\}

          表示字母x出現m

          表示字母x出現至少m

          表示字母x至少出現m次,不超過n

          o\{5,10\}

          如果一行中含有連續出現5-10o字母 (supported by vi and grep)

          例子3.1

          /love/

          模式love可以匹配自己和作為其他詞的一部分匹配,例如lovelyglovesclover

          例子3.2

          /^love/

          起始錨,匹配只能匹配以love開始的詞。

          例子3.3

          /love$/

          結束錨,匹配以love結束的詞。

          例子3.4

          /l.ve/

          .只能匹配一個字符。

          例子3.5

          /o*ve/

          *匹配0到多個字符,比如love, loooove, lve

          例子3.6

          /[Ll]ove/

          匹配Lovelove

          例子3.7

          /ove[a-z]/

          [a-z]中的任何一個字符都可以匹配

          例子3.8

          /ove[^a-zA-Z0-9]/

          匹配ove后跟的字符不在a-z,A-Z,0-9的字符

          例子3.9

          /^[A–Z]..$/

          匹配起始為[A-Z]之間的字母,跟隨兩個任意字符,緊接著是一個新行。

          /^[A–Z][a–z ]*3[0–5]/

          匹配以大寫字母開始,跟著0個或者多個小寫字母或空格,跟隨著數字3和另外一個在0-5之間的數字。

          /[a–z]*\ ./

          匹配包含0個或多個小寫字母,跟著.

          /^ *[A–Z][a–z][a–z]$/

          匹配其實是0個或者多個空格(tab不能算作空格),跟著大寫字母,兩個小寫字母和一個新行。

          /^[A–Za–z]*[^,][A–Za–z]*$/

          匹配0個或多個大寫或小寫字母跟著非逗號,然后緊跟著0個或者多個大寫或小寫字母結束

          例子3.10

          /\<fourth\>/

          在每行上查找fourth這個單詞,一個單詞可以被空格分隔,結束于標點符號,起始于一行,結束于一行等等。

          例子3.11

          /\<f.*th\>/

          匹配單詞以f開始,跟著0個或者多個任意的字符,結束語th

          例子3.12

          1,$s/\([0o]ccur\)ence/\1rence/

          搜索整個字符串occurrence或者Occurrence

          例子3.13

          :s/\(square\) and \(fair\)/\2 and \1/

          將會匹配fair and square

           

          例子3.14

          /5\{2\}2\{3\}\./

          匹配所有行中包含出現兩次數字5,跟著出現三次數字2,跟著.

          posted on 2008-07-09 11:21 一葉笑天 閱讀(377) 評論(0)  編輯  收藏 所屬分類: Shell技術
          主站蜘蛛池模板: 遂川县| 如皋市| 灵寿县| 镇康县| 磴口县| 赫章县| 新干县| 凭祥市| 合肥市| 兴安县| 河东区| 宣化县| 长岭县| 威信县| 寻甸| 连云港市| 新邵县| 盐边县| 云安县| 平安县| 社会| 锡林郭勒盟| 拜城县| 乐至县| 马关县| 凤台县| 大化| 万安县| 蒙自县| 辽阳市| 息烽县| 盖州市| 汝城县| 银川市| 绥滨县| 修武县| 安康市| 永济市| 淮安市| 浙江省| 鄂伦春自治旗|