[英]C# Regex to match multiple section
我有这种格式的.txt文件
内容长度:20
等等等等等等
-停-
内容长度:10屁股
-步-
内容长度:0<-空的空间->
-步-
内容长度:10哈巴
-步-
我使用正则表达式按内容长度分隔该部分,使用步骤或停止使其成为该部分的结尾。 我的正则表达式是
(((content-length:)\\ s(\\ d )[\\ r \\ n] +([\\ s \\ S] +?)(-stop- | -step-))*
但是,如果内容长度为零(这意味着在步进或停止之前存在空白),则它还会捕获下一个内容长度部分。 有什么想法可以防止这种情况吗?
尝试这个
(?:(?:content-length):\s(?<length>\d+)\n+(?<content>.*?)\n*(?:-stop-|-step-))
输入:
content-length: 20
blahblahblah
-stop-
content-length: 10
bum
-step-
content-length: 0
-step-
content-length: 10
huba
-step-
输出:
MATCH 1
length [16-18] `20`
content [20-32] `blahblahblah`
MATCH 2
length [56-58] `10`
content [60-63] `bum`
MATCH 3
length [87-88] `0`
2. [91-91] ``
MATCH 4
length [114-116] `10`
content [118-122] `huba`
试试这个 :
(?:(?:content-length:))\\s(\\d+)[\\r\\n]+(.*)?[\\r\\n]+(?:-stop-|-step-)
(((content-length:)\\ s(\\ d +)[\\ r \\ n] +(。*)\\ n *(-stop- | -step-))。 在这里查看正则表达式https://regex101.com/r/wU9uA4/1
试试这个代码:
((content-length:)\s(\d)[\r\n]\*([\s\S]\*?)(-stop-|-step-))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.