正则表达式,用于跨多行选择文本

时间:2017-01-05 05:51:42

标签: regex

我正在尝试编写一个正则表达式来选择Java文件中两个花括号之间的文本。大括号之间的文本可以分布在多行中。

例如,

{
   // line1 ;
   // line 2 ;
   // line 3 ;
}

我需要选择大括号之间的所有行。

我尝试了\{[.]*\},但它没有选择多行。

请在这方面给我建议。 感谢。

2 个答案:

答案 0 :(得分:2)

通常,这不是一个好主意,因为您需要考虑嵌套括号等。你可能最好使用解析器 话虽这么说,你可能会得到以下结构:

^\{
(.+?)
^\}

这假定您的开始和结束括号独立于一行。如果您还想允许空格,则需要将其更改为:

^\s*\{
(.+?)
^\s*\}

请参阅a demo on regex101.com(并注意不同的修饰符,即DOTALLMULTILINE!)。

答案 1 :(得分:1)

您需要在正则表达式中添加换行符...试试这个:     \ {(。* \ r \ n)的* \}