我正在尝试在两个标签之间获取文本块,而且我遇到了一些困难。我的示例文本是:
<file powershell>
Windows 6.3 Build 9600
</file>
我正在尝试使用标记作为分隔符,在<file powershell>
之后和</file>
之后的下一行开始抓取文本。现在我正在使用^<file.+>\n
和<\/file>
,但这给了我标签。我应该只获得Windows 6.3 Build 9600
。有什么帮助吗?谢谢!
答案 0 :(得分:0)
您必须使用捕获组来捕获所需的内容。例如:
<file.+?>(.*?)<\/file>
<强> Working demo 强>
无论如何,似乎你想要遍历一个xml,如果是这样你应该使用xml解析器或xpath表达式,如//file/text()
或//file[@powershell]/text()
,假设powershell是一个格式正确的属性
答案 1 :(得分:0)
使用环顾四周:
(?<=<file powershell>)[^<]*(?=<\/file>)
看后面/前面断言,但不消费输入 - 即它不会成为比赛的一部分。
[^<]
只是解决了点不匹配换行符的问题。