猿问

正则表达式匹配之间的所有内容

我已经尝试了一个小时,但我不是正则专家。我想做的事情看起来很简单,但结果却比我想象的要困难得多。


基本上我有这个:


<<< Some code


    def prnt(string)

        print(string)

    end


=====


    def println(string)

        puts(string)

    end


*****

<<< Some more code

...

我想要做的是捕获第一行<<< Some code和*****. 一个文件中会有很多这样的块。


到目前为止,我拥有的正则表达式是 this (?:<<< .*\r?\n)([\s\S]+)(?:[*]{5}),但它并没有真正起作用。有任何想法吗?我使用它的语言是 Go。


萧十郎
浏览 164回答 2
2回答

子衿沉夜

没关系我想通了!(?:<<< .*\r?\n)([\s\S]*?)(?:[*]{5})看起来最重要的是让中间的匹配组变得懒惰,以便尽可能少地匹配。

蝴蝶刀刀

这将捕获组 1 中的目标,但您必须使用“点匹配换行符”开关“s”:<<<[^\r\n]+[\r\n]*(.*?)[*]{5}见现场演示。
随时随地看视频慕课网APP

相关分类

Go
我要回答