2016-01-01 4 views
-2

Я хочу, чтобы разбить строку, используя регулярное выражениеRegex разбора строки

Например:

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

Я хочу, чтобы иметь возможность извлечь раздельные слова - UPDATE, USER, ACCOUNT, SUCCESS

Может кто-нибудь, пожалуйста, помогите мне?

Заранее спасибо

ответ

0

я смог найти решение, чтобы получить 3 группы: группа 1 = ОБНОВЛЕНИЕ, группа 2 = USER_ACCOUNT, группа 3 = УСПЕХ

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

1

Попробуйте сделать это с помощью :

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

Просто используйте это регулярное выражение для фильтрации текста:

>([^<>]+)< 

Demo здесь: 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) 

И затем разделить его на «_»

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

re.split(p, test_str) 

Кроме того, если вы не хотите использовать Python или любой другой язык программирования, вы можете использовать эти регулярные выражения в текстовых редакторах, как Notepad ++ , если вы находитесь в Windows.

Например, в Notepad ++ вы можете использовать это регулярное выражение в меню замены после активации регулярных выражений.

Смежные вопросы