解决git冲突时,我正在尝试使用正则表达式从源文件中捕获冲突,内容如下:
<<<<<<< HEAD
line1
line2
...
=======
这是我的版本:
^<<<<<<< HEAD\n\t.+\n\t.+\n\t=======\n\t
显然,我的版本仅适用于固定行,因为我需要重复.+\n\t
来匹配它们。但真的不知道如何正确地做到这一点?有什么提示吗?
[更新]我正在使用Boost库中的Perl兼容正则表达式(PCRE)引擎。
答案 0 :(得分:1)
您可以使用
(?sm)^<<<<<<< HEAD.*?\n\t*=======\n*\t*
请参阅regex demo
<强>解释强>:
(?sm)
- 内联修饰符:s
使.
匹配换行符以及任何其他字符,m
使^
匹配行开头和$
匹配行结束^
- 行的开头<<<<<<< HEAD
- 文字字符串<<<<<<< HEAD
.*?
- 0+任何字符,尽可能少,直到第一个\n\t*
- LF后跟0 +标签=======
- 文字子字符串\n*\t*
- (不确定你真的需要它)0+ LFs后跟0 +标签。答案 1 :(得分:0)
你用什么语言? 该选项允许“。”匹配新行和任何字符,以便它匹配多行字符串。
添加此项需要了解您编码的语言。