Extract substring с использованием regex в groovy
Если у меня есть следующий шаблон в некотором тексте:
def articleContent = "<![CDATA[ Hellow World ]]>"
Я хотел бы извлечь часть "Hellow World", поэтому для ее соответствия я использую следующий код:
def contentRegex = "<![CDATA[ /(.)*/ ]]>"
def contentMatcher = ( articleContent =~ contentRegex )
println contentMatcher[0]
Однако я продолжаю получать исключение из null-указателя, потому что регулярное выражение, похоже, не работает, каково было бы правильное регулярное выражение для "любого мира текста" и как его собирать из строки?
Ответы
Ответ 1
Try:
def result = (articleContent =~ /<!\[CDATA\[(.+)]]>/)[ 0 ][ 1 ]
Однако я беспокоюсь, что вы планируете анализировать xml с помощью регулярных выражений. Если эта cdata является частью более значимого XML-документа, лучше использовать XML-парсер