如何根据模式转换线条?

时间:2016-03-05 14:05:48

标签: regex xml text notepad++ sublimetext3

我有需要转换成模式的数据。 输入数据是由某些东西分隔的(因为它易于查找和替换)ex。逗号

food,apple,10,10 
sweets,candy,20,20

我想将其转换为XML:

<Item>
    <Product type="food" name="apple" price"10" quantity="10">
</Item>
<Item>
    <Product type="sweets" name="candy" price"20" quantity="20">
</Item>

2 个答案:

答案 0 :(得分:2)

您需要正则表达式查找/替换:

使用查找对话框,替换选项卡:

  1. 查找内容: ^([^,]*),([^,]*),([^,]*),([^\r\n]*)(\R)*
  2. 替换为: <Item>\5 <Product type="\1" name="\2" price="\3" quantity="\4"> \5</Item>\5
  3. 检查左下方的正则表达式
  4. 全部替换
  5. 说明:

    • find将字符串拼接成逗号分隔的部分并捕获 \1\5
    • 中的值
    • \5捕获换行符
    • 替换将捕获的值放在XML-Node

答案 1 :(得分:1)

替换:(\w+),(\w+),(\w+),(\w+)

with:<Item>\n <Product type="\1" name="\2" price="\3" quantity="\4">\n</Item>

Please check out this demo.