小編給大家分享一下VSCode中正則表達(dá)式的示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比鶴壁網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式鶴壁網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋鶴壁地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。雖然現(xiàn)在幾乎所有的文本編輯器都支持正則表達(dá)式,但我在本教程中用的是 Visual Studio Code,不過你可以使用任何你喜歡的編輯器。另請(qǐng)注意,你通常需要在搜索輸入框附近的某處打開 RegEx 開關(guān)。以下是在 VSCode 中執(zhí)行此操作的方法:
你需要通過選中此選項(xiàng)啟用RegEx
.?
— ?匹配任何字符讓我們開始吧。點(diǎn)符號(hào).
用來匹配任何字符:
b.t
上面的正則匹配"bot"
,`"bat"
和任何以b
開頭、t
結(jié)尾的三個(gè)字符的單詞。但是如果你想搜索點(diǎn)符號(hào),則需要用\
來對(duì)它進(jìn)行轉(zhuǎn)義,所以下面這個(gè)正則只匹配確切的文本"b.t"
:
b\.t
.*
?—? 匹配任何東西這里.
表示“任何字符”,*
表示“此符號(hào)重復(fù)前面那個(gè)內(nèi)容任何次數(shù)?!?/em> 把它們放在一起(.*
)表示“任何符號(hào)重復(fù)任意次數(shù)?!?/em> 例如,你可以用它來查找以某些文本開頭或結(jié)尾的匹配項(xiàng)。假設(shè)我們有一個(gè)這樣的 javascript 方法:
loadScript(scriptName: string, pathToFile: string)
我們想找到這個(gè)方法的所有調(diào)用,其中pathToFile
指向文件夾“l(fā)ua”
中的任何文件。可以使用以下正則表達(dá)式:
loadScript.*lua
這意味著,“匹配所有以"loadScript"
開始同時(shí)以"lua"
結(jié)束的字符串。”
?
?— ?非貪婪的匹配.*
之后的?
符號(hào)和其他一些匹配規(guī)則意味著“盡可能少的匹配”。 在上一張圖中,每次匹配都會(huì)得到兩次"lua"
字符串,直到第二個(gè)"lua"
所有東西才能全部匹配完畢。如果你想匹配第一次出現(xiàn)的"lua"
,可以使用以下正則:
loadScript.*?lua
這意味著,“匹配所有以"loadScript"
開頭,后面為任意字符,直到第一次出現(xiàn)"lua"
loadScript.*?lua
:匹配以 loadScript 開頭的所有內(nèi)容,直到第一次出現(xiàn)"lua"
好的,現(xiàn)在我們可以匹配一些文字了。但是如果想要修改我們發(fā)現(xiàn)的部分文本呢?這時(shí)候就要用到捕獲組。
假設(shè)我們修改了loadScript
方法,現(xiàn)在需要在它原來的兩個(gè)參數(shù)之間插入另外一個(gè)參數(shù)。讓我們把這個(gè)新參數(shù)命名為id
,這時(shí)新的函數(shù)原型應(yīng)如下所示:loadScript(scriptName,id,pathToFile)
。我們?cè)谶@里不能用文本編輯器的常規(guī)替換功能,不過正則表達(dá)式能夠幫助我們。
通過上圖你可以看到運(yùn)行以下正則表達(dá)式的結(jié)果:
loadScript\(.*?,.*?\)
這意味著:“匹配以"loadScript("
開頭的, 后面跟任意內(nèi)容,直到遇到第一個(gè),
,然后是任意內(nèi)容,直到第一個(gè))
”
對(duì)你來說,可能看起來比較奇怪的是\
符號(hào)。它們用于對(duì)括號(hào)進(jìn)行轉(zhuǎn)義。
因?yàn)榉?hào)(
和)
是正則表達(dá)式用來捕獲匹配文本部分的特殊字符,但我們需要匹配實(shí)際的括號(hào)字符,所以需要對(duì)它們進(jìn)行轉(zhuǎn)義。
在前面的表達(dá)式中,我們使用.*?
符號(hào)定義了方法調(diào)用的兩個(gè)參數(shù)。要使每個(gè)參數(shù)作為單獨(dú)的捕獲組,需要在它們的前后分別添加(
和)
符號(hào):
loadScript\((.*?),(.*?)\)
如果你運(yùn)行這段正則,你將看到?jīng)]有任何變化。這是因?yàn)樗ヅ涞氖窍嗤奈谋尽5F(xiàn)在我們可以將第一個(gè)參數(shù)稱為\$1
,將第二個(gè)參數(shù)稱為\$2
。這稱為反向引用,它將幫助我們做自己想要的事情:在兩個(gè)參數(shù)中間添加另一個(gè)參數(shù):
搜索輸入:
loadScript\((.*?),(.*?)\)
這與之前的正則相同,但分別將參數(shù)映射到倒了捕獲組1和2。
替換輸入:
loadScript($1,id,$2)
這意味著“用文本"loadScript("
、捕獲組1、"id"
、捕獲組2和)
替換每個(gè)匹配的文本 ”。請(qǐng)注意,你不需要在替換輸入中轉(zhuǎn)義括號(hào)。
[ ]
?—? 字符類你可以在 [
和]
符號(hào)內(nèi)來列出要在特定位置匹配的字符。例如,[0-9]
匹配從0到9的所有數(shù)字。你還可以明確列出所有數(shù)字:[0123456789]
—— 與前面的含義相同。你也可以使用帶字母的破折號(hào),[a-z]
將匹配所有小寫拉丁字符,[A-Z]
將匹配所有大寫拉丁字符,[a-zA-Z]
將會(huì)匹配兩者。
你也可以在字符類之后使用*
,就像在.
之后一樣,在這種情況下意味著:“匹配此類中任意數(shù)量的字符”
看完了這篇文章,相信你對(duì)“VSCode中正則表達(dá)式的示例”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!