vi 中的正規表示式 (Regular Expression)(轉)
vi 中的正規表示式 (Regular Expression)(轉)[@more@].1. 定義和例子
============
正規表示式只是一個字元模板,用來在搜尋中匹配相同的字元.
在大多數的程式中,正規表示式是括在正斜槓中間的.
例如, /love/就是一個以正斜槓為分隔符的正規表示式,其中的
模板love 將用在搜尋所有行中與它匹配的字元. 更為有趣的是
正規表示式可以被特殊的元字元控制.讓我們透過下面的例子來進
一步瞭解這個概念.
有文字如下:
Hi tom,
I think I failed my anatomy test yesterday. I
had a terrible stomach ache. I ate too many
fried green tomatoes.
Anyway, Tom, Ineed your help. I'd like to make
the test up tomorrow, but don't know where to
begin studying. Do you think you could help me?
After work, about 7 PM, come to my place and I'll
treat you to pizza in return for your help.
Thanks.
Your pal,
guy@phantom
假設你發覺Tom 並沒有參加考試,而是David 參加的考試.同時還
發現, 在賀信中Tom的T用的是小寫.於是你決定做一個全文替換,把tom
替換為Tom.
在vi命令列模式下輸入:
:1, $s/tom/David/g
^ ^ ^ ^ ^
| | | | |---- global 對全文有效
| | | |
| | |--------- 將tom 替換為 David , 使用正規表示式.
| |------- 替換單詞
|------ 從檔案的第一行到檔案的最後一行.
替換後的文字如下:
Hi David,
I think I failed my anaDavidy test yesterday, I
had terible sDavidach ache. I ate too many
fried green Davidatoes.
Anyway, David, I need your help. I'd like to make
the test up Davidorrow, but don't know where to
begin studying. Do you think you could help me?
After work, about ? PM, come to my place and
I'll treat you to pizza in return for your help.
Thanks.
Your pal,
guy@phanDavid
我們發現有些單詞中含有tom的的也被替換了.
這是因為我們沒有使用正規表示式的元字元來界定一個模板從而控制
字元的替換動作.
使用:
:1, $s//David/g
就可以得到我們想要的結果了,即只替換單詞tom而不是含有tom字元的
單詞.
============
正規表示式只是一個字元模板,用來在搜尋中匹配相同的字元.
在大多數的程式中,正規表示式是括在正斜槓中間的.
例如, /love/就是一個以正斜槓為分隔符的正規表示式,其中的
模板love 將用在搜尋所有行中與它匹配的字元. 更為有趣的是
正規表示式可以被特殊的元字元控制.讓我們透過下面的例子來進
一步瞭解這個概念.
有文字如下:
Hi tom,
I think I failed my anatomy test yesterday. I
had a terrible stomach ache. I ate too many
fried green tomatoes.
Anyway, Tom, Ineed your help. I'd like to make
the test up tomorrow, but don't know where to
begin studying. Do you think you could help me?
After work, about 7 PM, come to my place and I'll
treat you to pizza in return for your help.
Thanks.
Your pal,
guy@phantom
假設你發覺Tom 並沒有參加考試,而是David 參加的考試.同時還
發現, 在賀信中Tom的T用的是小寫.於是你決定做一個全文替換,把tom
替換為Tom.
在vi命令列模式下輸入:
:1, $s/tom/David/g
^ ^ ^ ^ ^
| | | | |---- global 對全文有效
| | | |
| | |--------- 將tom 替換為 David , 使用正規表示式.
| |------- 替換單詞
|------ 從檔案的第一行到檔案的最後一行.
替換後的文字如下:
Hi David,
I think I failed my anaDavidy test yesterday, I
had terible sDavidach ache. I ate too many
fried green Davidatoes.
Anyway, David, I need your help. I'd like to make
the test up Davidorrow, but don't know where to
begin studying. Do you think you could help me?
After work, about ? PM, come to my place and
I'll treat you to pizza in return for your help.
Thanks.
Your pal,
guy@phanDavid
我們發現有些單詞中含有tom的的也被替換了.
這是因為我們沒有使用正規表示式的元字元來界定一個模板從而控制
字元的替換動作.
使用:
:1, $s//David/g
就可以得到我們想要的結果了,即只替換單詞tom而不是含有tom字元的
單詞.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-961648/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 正規表示式(regular expression)Express
- oracle中的正規表示式(regular expression)OracleExpress
- Oracle正規表示式(regular expression)OracleExpress
- 正規表示式regular expression詳述Express
- [Shell] awk學習(3)-regular expression 正規表示式Express
- oracle的正規表示式(regular expression)簡單介紹OracleExpress
- [LeetCode] Regular Expression Matching 正規表示式匹配LeetCodeExpress
- vi 正規表示式替換
- 正規表示式中的特殊字元(轉)字元
- JavaScript中的正規表示式(2) (轉)JavaScript
- JavaScript中的正規表示式(1) (轉)JavaScript
- [LeetCode Python3]10. Regular Expression Matching手把手詳解——正規表示式(一)LeetCodePythonExpress
- 轉義正規表示式中特殊字元字元
- java中的正規表示式Java
- JS中的正規表示式JS
- iOS中的正規表示式iOS
- Oracle中的正規表示式Oracle
- [轉]UltraEdit正規表示式
- 常用有效的正規表示式【轉】
- js中的正規表示式(1)JS
- Java 中 Emoji 的正規表示式Java
- Oracle sql中的正規表示式OracleSQL
- 正規表示式 轉義字元字元
- c# 正規表示式(轉)C#
- 正規表示式語法(轉)
- 【正規表示式】常用的正規表示式(數字,漢字,字串,金額等的正規表示式)字串
- 正規表示式需要轉義的字元字元
- 正規表示式在Java中的使用Java
- 淺談js中的正規表示式JS
- python中的re(正規表示式)Python
- UltraEdit (UE)中的常用正規表示式
- 正規表示式
- 正規表示式使用詳解(轉)
- Linux中基本正規表示式Linux
- JavaScript的正規表示式JavaScript
- JS 的正規表示式JS
- 正規表示式需要轉義的特殊字元字元
- JS常用正規表示式及驗證時間的正規表示式JS