正则表达式解析字符串

时间:2016-01-01 23:56:23

标签: regex xml-parsing

我想使用正则表达式分割字符串

例如:

<event><id>UPDATE_USER_ACCOUNT_SUCCESS_APP</id></event>    

我希望能够提取单独的字词 - UPDATEUSERACCOUNTSUCCESS

有人可以帮帮我吗?

先谢谢

3 个答案:

答案 0 :(得分:1)

尝试使用执行此操作:

read -a arr < <(xmllint --xpath '/event/id/text()' file | tr '_' ' ')
printf '%s\n' ${arr[@]}

答案 1 :(得分:0)

只需使用此正则表达式过滤文字:

>([^<>]+)<

在这里演示:https://regex101.com/r/wM9rX4/1

Python代码:

import re
p = re.compile(ur'>([^<>]+)<')
test_str = u"<event><id>UPDATE_USER_ACCOUNT_SUCCESS_APP</id></event> "

re.search(p, test_str)

然后将其拆分为&#39; _&#39;

import re
p = re.compile(ur'_')
test_str = u"UPDATE_USER_ACCOUNT_SUCCESS_APP"

re.split(p, test_str)

此外,如果您不想使用Python或任何其他编程语言,则可以在文本编辑器中使用这些正则表达式,例如Notepad ++,如果您使用的是Windows。

例如,在Notepad ++中,您可以在激活正则表达式后在替换菜单中使用此正则表达式。

答案 2 :(得分:0)

我找到了获得3组的解决方案:组1 =更新,组2 = USER_ACCOUNT,组3 =成功

([A-Z]+)+_+([A-Z]+)+_+(SUCCESS|FAILURE)+