我有一个自由格式的文本文件(不是XML),我想从中解析两个模式之间的线。这是样本数据
<Hi>
col1 col2 col3
1 2 3
4 5 6
helo how are
<How>
col1 col2
1 2
helo hi'
Run Code Online (Sandbox Code Playgroud)
我想每个标签之间即解析数据<Hi>和blank线作为一个字符串。类似地,<How> 和之间的数据blank作为另一字符串。
到目前为止,我尝试过的正则表达式模式不起作用。
val pattern = "^<Hi>(.*)\\n"
val pattern = "^<Hi>(.*)\\s*$"
val pattern = "^<Hi>(.*)"
val pattern = "^<Network>(.*)((\\r\\n|\\n|\\r)$)|(^(\\r\\n|\\n|\\r))|^\\s*$"
Run Code Online (Sandbox Code Playgroud)
有没有一种方法可以为空白行指定模式。任何帮助表示赞赏。
您可以使用此正则表达式来捕获来自group1的数据,
<[^>]+>\s*([\w\W]*?(?=\n\n|$))
Run Code Online (Sandbox Code Playgroud)
说明:
<[^>]+>\s*-开始使用<[^>]+>和可选的空格捕获标签\s*([\w\W]*? -以非贪婪的方式捕获包括换行符在内的所有字符(?=\n\n|$)) -积极向前看,以确保一旦看到两个换行符或字符串的绝对结尾,匹配就会停止