Я предполагаю, что вы используете 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флаг.Некоторым людям это нравится.Я также разбил различные группы на их собственные константы, а затем вставил их вместе при составлении шаблона.Мне это очень нравится.
Надеюсь, все это поможет.