По внешнему виду текста кажется, что это может быть XML.Это так, или этот текст является необработанным ответом службы?Если это XML, вы можете легко его проанализировать с помощью Groovy XmlSlurper:
def input = '<root TX="0000000000108000001830001" FI="" OS="8" CI="QU01SF1S2032" AW="SSS" SA="1525 Windward Concourse"></root>'
def xml = new XmlSlurper().parseText(input)
def map = xml.attributes()
Переменная map
будет [CI:QU01SF1S2032, AW:SSS, TX:0000000000108000001830001, OS:8, FI:, SA:1525 Windward Concourse]
Если это не XML, вы можете следовать Ziesemer ответ и использовать регулярное выражение.Отличная версия его ответа, которая генерирует Map
, будет выглядеть так:
def input = 'TX="0000000000108000001830001" FI="" OS="8" CI="QU01SF1S2032" AW="SSS" SA="1525 Windward Concourse"'
def match = input =~ /(\w+)="([^"]*)"/
def map = [:]
match.each {
map[it[1]] = it[2]
}
Результат map
будет таким же, как и раньше.