正则表达式匹配之间的一切

标签 regex go

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

基本上我有这个:

<<< 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/

相关文章:

java - 如何使用java中的正则表达式提取下面文本中所需的字符串?

regex - 我正在使用正则表达式重定向编辑 .htaccess 文件,如何将 "-"添加到\w 模式?

regex - 选择字符串以仅显示返回行的特定部分

java - ECDSA 签名 Java vs Go

regex - 我应该使用\d 或 [0-9] 来匹配 Perl 正则表达式中的数字吗?

r - 提取空格和第一个 ":"之间的字符

go - gofm 能否适应本地编码标准偏好?

go - 如何从中间件记录响应主体?

json - golang 使用 Gorm 查询数据库并在 http 响应中返回 json

go - Go 模板中的算术