Подтвердить что ты не робот

Extract substring с использованием regex в groovy

Если у меня есть следующий шаблон в некотором тексте:

def articleContent =  "<![CDATA[ Hellow World ]]>"

Я хотел бы извлечь часть "Hellow World", поэтому для ее соответствия я использую следующий код:

def contentRegex = "<![CDATA[ /(.)*/ ]]>"
def contentMatcher = ( articleContent =~ contentRegex )
println contentMatcher[0]

Однако я продолжаю получать исключение из null-указателя, потому что регулярное выражение, похоже, не работает, каково было бы правильное регулярное выражение для "любого мира текста" и как его собирать из строки?

4b9b3361

Ответ 1

Try:

def result = (articleContent =~ /<!\[CDATA\[(.+)]]>/)[ 0 ]​[ 1 ]

Однако я беспокоюсь, что вы планируете анализировать xml с помощью регулярных выражений. Если эта cdata является частью более значимого XML-документа, лучше использовать XML-парсер