Regex 寻找高级正则表达式替换公式
我想做一个查找/替换代码。我使用的是记事本+,但如果它有可能的话,我几乎可以使用其他任何东西 这就是我目前正在处理的问题:Regex 寻找高级正则表达式替换公式,regex,visual-c++,notepad++,Regex,Visual C++,Notepad++,我想做一个查找/替换代码。我使用的是记事本+,但如果它有可能的话,我几乎可以使用其他任何东西 这就是我目前正在处理的问题: Asus Zenfone 4 <DeviceId> <AndroidBoardName>EeePad <AndroidBootloader>unknown <DeviceBrand>asus <DeviceModel>WW_ZenFone <DeviceModelIdentifier>LRX21V &l
Asus Zenfone 4
<DeviceId>
<AndroidBoardName>EeePad
<AndroidBootloader>unknown
<DeviceBrand>asus
<DeviceModel>WW_ZenFone
<DeviceModelIdentifier>LRX21V
<DeviceModelBoot>redhookbay
<HardwareManufacturer>asus
<HardwareModel>ASUS_T00I
<FirmwareBrand>ASUS_T00I
<FirmwareTags>release-keys
<FirmwareType>user
<FirmwareFingerprint>asus/WW_ZenFone/ASUS_T00I:5.0/LRX21V/WW_ZenFone-V7.4.4-20150831:user/release-keys
我希望这是可能的使用正则表达式和它的高级查找/替换方法。以下是我认为需要做的一切:
如果我有点不知所措,请告诉我,我将开始一个接一个地复制/粘贴所有内容的手工劳动。这可以在记事本++中使用“替换为激活的正则表达式”来完成 然后,您可以搜索
(?:\G(?]*)>(.*)(?!\R\G
匹配第一次运行中字符串的开头)或匹配任何字符(换行符除外),一次或多次并将其存储到组1中
\R]*)>(.*+
-匹配一个换行符,后跟
(存储到组2),然后是
,然后是任何数量的字符,直到行尾(存储到组3)((?!\r您可以分两步完成,也可以使用回调。这两个步骤在记事本++中可能不可取/不可行。使用C语言很容易完成。两步方法是查找((?:]*>。(::::::(::::)+)
替换为{\n$1\n}
然后查找]*)>(.
替换$1=“$2”,
回调方法使用步骤1,然后将$1传递给回调,其中字符串由“{\n”
+在字符串+“\n}中传递的步骤2正则表达式构成
然后返回。这些正则表达式中的每一个都用于全局查找/替换。它们可以单独执行,但必须先执行步骤1。因此,在记事本中,它是手动的,但每件事只需执行一次两个步骤,如果是一次性的,可能会更好。很奇怪,条件在替换字符串中。完全不同的地方是to嵌入代码。哇,这真是太棒了!它像一个魔咒一样工作,我再也没有比它更好的了。你花了多长时间把它组合在一起?我想你一定已经和RegEx合作多年了,能够像处理儿戏一样处理这样的事情。有什么好的来源可以帮我学习最好的东西吗s、 我很高兴你能列出每个部分的工作内容,因为这才真正帮助我理解你的工作内容和原因。:)很高兴它起到了作用。我从Jeffrey Friedls和Jeffrey Friedls的《掌握正则表达式》(Mastering Regular Expressions)一书中学到了一些东西。但对我帮助最大的肯定是参加了SO,并阅读了所有那些杰出的家伙的答案。你可以找到Notepad++(boost)和使用的regex风格的dokumentation。如果有帮助,请随意。
Asus Zenfone 4
{
DeviceId = "",
AndroidBoardName = "EeePad",
AndroidBootloader = "unknown",
DeviceBrand = "asus",
DeviceModel = "WW_ZenFone",
DeviceModelIdentifier = "LRX21V",
DeviceModelBoot = "redhookbay",
HardwareManufacturer = "asus",
HardwareModel = "ASUS_T00I",
FirmwareBrand = "ASUS_T00I",
FirmwareTags = "release-keys",
FirmwareType = "user",
FirmwareFingerprint = "asus/WW_ZenFone/ASUS_T00I:5.0/LRX21V/WW_ZenFone-V7.4.4-20150831:user/release-keys",
},