我已经尝试了一个小时,但我不是正则专家。我想做的事情看起来很简单,但结果比我想象的要困难得多。
基本上我有这个:
<<< Some code
def prnt(string)
print(string)
end
=====
def println(string)
puts(string)
end
*****
<<< Some more code
...
我想做的是捕获第一行 <<< Some code
之间的所有内容和 *****
.一个文件中会有很多这样的 block 。
我目前使用的正则表达式是 (?:<<< .*\r?\n)([\s\S]+)(?:[*]{5})
,但它并没有真正起作用。有任何想法吗?我使用的语言是 Go。
最佳答案
没关系,我想通了!
(?:<<< .*\r?\n)([\s\S]*?)(?:[*]{5})
似乎最重要的是让中间的匹配组变得懒惰,以便尽可能少地匹配。
关于正则表达式匹配之间的一切,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35236743/