原文本:
edge [
source 1
target 2
]
edge [
source 2
target 3
]
edge [
source 3
target 4
]
edge [
source 1
target 5
]
要匹配的文本属于多行:
edge [
source *
target *
]
‘*’表示数字。
在windows系统下使用了codeblocks编写C++正则表达式规则,此时换行符“\n”是正确的:
regex e("(\\s{2}edge\\s{1}\\[{1}\n\\s{4}source\\s{1}\\d+\n\\s{4}target\\s{1}\\d+\n\\s{2}\\])");
而在cygwin下运行的时候就无法匹配到目标文本,发现是在换行符处出现了问题,在cygwin下运行的C++程序中正则表达式的换行符应该使用“\r\n”:
regex e("\\s{2}edge\\s{1}\\[\r\n\\s{4}source\\s{1}\\d+\r\n\\s{4}target\\s{1}\\d+\r\n\\s{2}\\]");