regex
  • groovy
  • 2011-01-26 3 views 2 likes 
    2

    У меня есть это регулярное выражениеGroovy Regular соответствие всех кавычек

    regex = ~/\"([^"]*)\"/ 
    

    так Im ищет весь текст между кавычками теперь я следующий строкой

    options = 'a:2:{s:10:"Print Type";s:8:"New Book";s:8:"Template";s:9:"See Notes";}' 
    

    однако делает

    regex.matcher(options).matches() => false 
    

    если это не так, и не должно быть 4 группы

    ответ

    3

    Метод matcher() пытается совместить всю строку с нерегулярным выражением.

    См. this tutorial для получения дополнительной информации.

    Я не знаю, Groovy, но это выглядит следующим образом должно работать:

    def mymatch = 'a:2:{s:10:"Print Type";s:8:"New Book";s:8:"Template";s:9:"See Notes";}' =~ /"([^"]*)"/ 
    

    Теперь mymatch.each { println it[1] } должен печатать все матчи.

    +0

    'mymatch.each {println it [1]}' печатает только совпадения :-) –

    +0

    @tim_yates: Спасибо за исправление! –

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