【发布时间】:2018-10-12 17:05:44
【问题描述】:
我一直在尝试提取两个大括号之间的任何文本,但问题是该文本可能包含其他大括号。
我一直在尝试的正则表达式(见下文)不起作用,因为它不会停止到结尾的花括号。
实际的正则表达式
/class\s+([A-Z]{1}[a-zA-Z0-9]+)\s+(?:<\s+([a-zA-Z0-9]+))?\s*{(.|\n|\r)*}/gm
根据下面的示例,它匹配第三组的其余文本
样本
class Main < Console {
+ main:Int () {
!String hello = "Hello, World!";
this.out(hello);
>> 0;
}
}
class Foobar {
+ foobar:None () {
#Some code...
}
}
匹配项
Group 1: Main
Group 2: Console
Group 3:
有没有人知道如何实现这一点(如果它甚至可能只使用正则表达式)?
【问题讨论】:
-
stackoverflow.com/a/1732454/4848801 半相关,你可能应该使用解析器
-
@RyanSchaefer 这就是我目前试图通过这样做来实现的目标。我的目标只是将类代码与签名分开。
-
使用解析器与使用正则表达式不同
-
@Davіd 效果很好,谢谢!
标签: regex