Я предполагаю, что вы используете Java. Вы бы использовали java.util.Regex
. Возможно, вы ищете флаг Pattern.DOTALL
на Pattern
. Это относится к терминаторам строк как к символу, который можно совместить с .
.
Pattern.compile ("^ * \ sSource: Test \ s ** \ s *", Patther.DOTALL);
Это зависит от того, насколько строго вы хотите быть, но выше будет соответствовать первая строка в первом фрагменте (включая терминатор строки).
Если вам нужна дополнительная помощь с API или это неправильный API, отредактируйте свой вопрос, чтобы быть более четким.
Вы пытаетесь сопоставить все три в одном регулярном выражении? Это можно сделать, но паттерн будет немного уродливым. Возможно, я тоже смогу помочь с этим.
Приличный тестер регулярных выражений: http://www.fileformat.info/tool/regex.htm. Вы можете сделать поиск Google для чего-то вроде regex java tester
.
Только одна вещь, рисунок внизу не будет делать то, что вы хотите, если я полностью пойму.
[\ s] + соответствует одному или нескольким пробелам, поэтому на передней панели требуется пропустить пробел. Кроме того, вам не нужны квадратные скобки. Они работают, но необходимы только для чередования. Если вы хотите соответствовать a
или b
, но не обоим: [ab]
. Но, если вы хотите соответствовать только a
, вы просто положили a
в свой шаблон.
\ s + одно или несколько пробелов \ w + один или несколько символов слова (без цифр или знаков препинания и т. Д.) . период \ s + некоторые пробелы \ d + некоторые цифры \ s + некоторые пробелы \ w некоторые слова символы . период \ s + пустые строки \ d + одна цифра
так, \s+\w+\.\s+\d+\s+\w+\.\s+\d+
Есть ли предполагается, что пустые строки в между Source: Test
и линией с только звезды?
Вы собираетесь в конечный итоге с чем-то вроде этого:
(?: # non-capturing group
\s*\* Source: Test\s+\* # first line of the of the first block
\s+\*\s+\* # second line, assuming that there is no space
# between lines or an arbitrary amout of whitespace
) # end of first group
| # or....
(?: # second group (non capturing)
\s+\w+\.\s+\d+\s+\w+\.\s+\d+ # what we discussed before for Org/Tckt
)
|
(?:\s+Guest:) # the last one is easy :)
Вы можете или не можете знать это, но комментарии, как я там может быть помещены в ваш код с помощью флага Pattern.COMMENTS. Некоторым это нравится. Я также разбил разные группы на свою собственную константу, а затем приклеил их вместе при компиляции patter. Мне это очень нравится.
Надеюсь, все это поможет.
зачем вам нужно один регулярное выражение для этих трех совершенно разных вещей? не лучше ли разделить его на три разных выражения? – apines