[英]notepad++ regular expression search failed
我嘗試使用以下內容搜索一些文本並將其替換為以#開頭的一些其他文本。 在 regex101 上它工作正常,但 NotePad++ 說搜索失敗。 還嘗試在 \n 之前添加 \r 但沒有幫助。
正則表達式: (class boy(?:.*\n)+\s*)(Height.*;\n)((?:.*\n)+})
要搜索的文本:
class boy Mike
{
Age = 20;
PhoneNum = 658965;
Height = 198;
City = LA
}
note boy Joe
{
Age = 21;
PhoneNum = 558565;
Height = 178;
City = BA
}
class boy Joe
{
Age = 21;
PhoneNum = 558565;
Height = 178;
City = BA
}
替代品: $1#$2$3
Output:
class boy Mike
{
Age = 20;
PhoneNum = 658965;
#Height = 198;
City = LA
}
note boy Joe
{
Age = 21;
PhoneNum = 558565;
Height = 178;
City = BA
}
class boy Joe
{
Age = 21;
PhoneNum = 558565;
#Height = 178;
City = BA
}
我已經重寫了你的正則表達式,所以它不使用newline
:
(?<=class boy \w+\s*\{[^}]+?)(Height[^;]+;)(?=[\s\S]+?\})
使用“全局”和“多行”選項。
用。。。來代替:
#$1
說明:
(?<=class boy \w+\s*\{[^}]+?)
尋找: class boy
,一個空格和一個或多個單詞字符,后跟一個或多個空格(包括換行符)。 然后尋找{
后跟一個或多個不是}
的字符。
(Height[^;]+;)
匹配 'Heigth' 后跟一個或多個字符不是;
- 將比賽放在第 1 組。
(?=[\s\S]+?\})
期待任何后跟}
的字符。
替換為#
和組 1。
另一種選擇...
尋找; (class[\s\S]+?(?!note))(height)
全部替換: $1#$2$3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.