我正在为编程语言制定自定义规则皮棉到 :
- 匹配 , 之后的一个或多个空行
{
,并且 - 另一条规则是匹配之前的空行
}
。
作为此代码中的一个例子,我希望这些规则匹配第 2 行和第 5 行:
class Test { /* Line 1 */
/* Line 2 */
func example() { /* Line 3 */
} /* Line 4 */
/* Line 5 */
}
我曾尝试通过积极的前瞻/后瞻来做到这一点,但没有成功(?<=\{)\n
。
有人可以帮忙吗?
更新:
在示例中添加了空格。
class Test {
func example() {
}
}
答案1
这符合你的要求:
\{\h*\R\K\h*\R|\R\K\h*\R(?=\h*\})
//added__^^^
解释:
\{ : open brace
\h* : 0 or more horizontal spaces
\R : any kind of line break
\K : forget all we have seen until this position
\h* : 0 or more horizontal spaces
\R : any kind of line break
| : OR
\R : any kind of line break
\K : forget all we have seen until this position
\h* : 0 or more horizontal spaces
\R : any kind of line break
(?= : positive lookahead
\h* : 0 or more horizontal spaces
\} : close brace
) : end lookahead