Я пытаюсь написать регулярное выражение для выделения текста между двумя фигурными скобками в файле Java. Текст в фигурных скобках может занимать несколько строк.
Например.,
{
// line1 ;
// line 2 ;
// line 3 ;
}
Мне нужно выделить все строки между фигурными скобками.
Я пробовал \{[.]*\}
, но он не выбирает несколько строк.
Пожалуйста, посоветуйте мне в этом отношении. Спасибо.
2 ответа
Как правило, это не очень хорошая идея, так как вам нужно учитывать вложенные скобки и т. Д. Возможно, вам лучше использовать парсер.
При этом вы можете использовать следующую конструкцию:
^\{
(.+?)
^\}
Это предполагает, что открывающая и закрывающая скобки стоят отдельно в одной строке. Если вы хотите также разрешить пробелы, вам нужно изменить его на:
^\s*\{
(.+?)
^\s*\}
См. демонстрацию на regex101.com (и обратите внимание на различные модификаторы , т.е. DOTALL
и MULTILINE
!).
Вам нужно добавить разрывы строк в регулярное выражение ... Попробуйте следующее: \ {(. * \ R \ n) * \}
DOTALL
).
Похожие вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.
{[^}]*}