【筆記】vscode 正則表達式

1.常用通配符:

https://juejin.im/post/5cee4f6c518825332550cd9d

https://docs.microsoft.com/en-us/dotnet/standard/base-types/regular-expression-language-quick-reference


【1】//Matches the previous element zero or more times.

Quantifier	   Description           	 Pattern	          Matches

    .     //匹配任意字符(匹配次數 n==0||1)  a.c                 ac,abc  
          //查找以a開頭,以c結束的字符串

    .*    //匹配任意字符任意次數             a.*c                 a1b23c

eg:    input                    search_result
        a.*c       abcabcabcabc   //匹配以“a”開始,以"c"結束的任意字符串
                                  //(僅以最後一次出現字符“c”爲結束)
?     //非貪婪運算符
.*?   //僅以第一次出現結束字符爲終止



\     //轉義運算符

eg:      input         search_result  
        fun\(.*\)       fun(type1,type2,...,typen)
//由於"()"爲取值運算符,匹配"("和“)”,需要進行轉義運算

回到我們最初的目的實現查找特定函數fun_name,並替換其中的某個參數int2爲int3
fun_name(char,int1,int2,double1)   

正則表達式的查找方式:
fun_name\(.*\)     //轉義括號,匹配所有fun_name()函數

正則表達式的查找替換
查找:fun_name\((.*)\)   //(),取值運算,做查找替換是可以用 $1 取值
替換:fun_name($1)       //替換不需要做轉義運算
                        //此語句並沒有替換任何字符

查找:fun_name\((.*?),(.*?),(.*?),(.*?)\) //?:第一次遇到","就會停止

如果寫成 fun_name\((.*),(.*),(.*),(.*)\)  //沒有"?"運算符
$1=“char,int1,int2,double1”
而不是 $1=“char”

正確寫法:
查找:fun_name\((.*?),(.*?),(.*?),(.*?)\)
替換:fun_name($1,$2,int3,$4)




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章