我想要查找/替换代码。我使用的是NotePad ++,但如果能够开启可能性,它可以使用其他任何东西。
这就是我目前正在使用的内容:
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
我需要做的是使它看起来如下:
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",
},
我希望这可以使用RegEx及其高级查找/替换方法。以下是我认为所有人都需要做的事情:
如果我在我的脑海中,请告诉我,我将完成手工复制/粘贴所有内容。
答案 0 :(得分:1)
使用替换为激活的正则表达式,可以在Notepad ++中执行此操作。
然后,您可以搜索(?:\G(?<!^)|(.+))\R<([^>]*)>(.*+)((?!\R<))?
并替换为(?{1}$1\r\n\{:)\r\n$2 = "$3",(?{4}\r\n\},:)
。
搜索模式细分:
(?:\G(?<!^)|(.+))
- 匹配上一个匹配的结尾,如果它不是一行的开头(\G
匹配第一次运行中字符串的开头)或匹配任何字符(换行符除外) ),一次或多次并将其存储到第一组中。 \R<([^>]*)>(.*+)
- 匹配换行符后跟<
,然后匹配任意数量的字符>
(存储到第2组),然后>
然后任意金额字符直到行尾(存储到第3组)((?!\R<))?
- 如果下一行未以<
开头替换模式分解:
(?{1}$1\r\n\{:)
- 条件替换:如果组1存在,则获取组1的内容,然后换行(您可能希望使用\n
而不是\r\n
,具体取决于您的系统默认换行符)\r\n$2 = "$3",
- 添加换行符,然后是第2组的内容,然后是空格=
空格,最后是第3组的内容,由"
(?{4}\r\n\},:)
- 条件替换:如果存在第4组,请添加换行符},