регулярное выражение для строки в стиле option - PullRequest
0 голосов
/ 07 февраля 2010

еще один застрял на земле Реге ... со следующей строкой

Слово "Блабла" - вариант 1: Бла ди Бла - вариант 2: Ха

Я хочу сопоставить 2 «варианта» в конце, чтобы у меня были группы:

  • Option1
  • Бла ди Бла
  • Option2
  • Ha

То, что я имею до сих пор, это: - (\ W +): (.? +) (? = - | $)

То, что я думал, должно означать: «Дефис, за которым следует слово, за которым следует двоеточие, за которым следует некоторое количество символов, за которыми следует либо дефис, либо перевод строки, не используя ни один из двух символов»

Но как-то не получается, только первые 2 группы будут захвачены. Куда я иду не так?

1 Ответ

1 голос
/ 07 февраля 2010

Это правильно. Вы не упомянули, какой язык вы используете, но вот как это работает в PHP:

$text = 'Word "Blabla" -Option1:Bla di Bla -Option2:Ha';
preg_match_all('/-(\w+?):(.+?)(?=-|$)/', $text, $matches, PREG_SET_ORDER);
print_r($matches);

, который производит:

Array
(
    [0] => Array
        (
            [0] => -Option1:Bla di Bla 
            [1] => Option1
            [2] => Bla di Bla 
        )

    [1] => Array
        (
            [0] => -Option2:Ha
            [1] => Option2
            [2] => Ha
        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...