C# 在空新行之前匹配行
输入如下: 0 00:00:00,000 --> 00:00:00,000 Hello world! 1 00:00:00,000 --> 00:00:00,000 Hello world! This is my new world. 2 00:00:00,000 --> 00:00:00,000 Hello guys! 0 00:00:00,000 --> 00:00:00,000 你好,世界! 1. 00:00:00,000 --> 00:00:00,000 你好,世界! 这是我的新世界。 2. 00:00:00,000 --> 00:00:00,000 大家好! 使用清晰快速的正则表达式,我想将其分为: Match 1: `0` Match 2: `00:00:00,000 --> 00:00:00,000` Match 3: `Hello world!` Match 1: `1` Match 2: `00:00:00,000 --> 00:00:00,000` Match 3: `Hello world! This is my new world.` Match 1: `2` Match 2: `00:00:00,000 --> 00:00:00,000` Match 3: `Hello guys!` 匹配1:`0` 匹配2:`00:00:00000-->00:00:00000` 第三场:“你好,世界` 第1场:`1` 匹配2:`00:00:00000-->00:00:00000` 第三场:“你好,世界! 这是我的新世界` 第1场:第2场` 匹配2:`00:00:00000-->00:00:00000` 第三场:“大家好` 我使用C# 在空新行之前匹配行,c#,regex,C#,Regex,输入如下: 0 00:00:00,000 --> 00:00:00,000 Hello world! 1 00:00:00,000 --> 00:00:00,000 Hello world! This is my new world. 2 00:00:00,000 --> 00:00:00,000 Hello guys! 0 00:00:00,000 --> 00:00:00,000 你好,世界! 1. 00:00:00,000 --> 00:00:00,000 你好,世界! 这是我的新世界
(\d+[\n\r]([\d:,]+\s-->\s[\d:,]+)[\n\r]。+
进行匹配,但问题是它不匹配两行或两行以上的文本(匹配上例第2组中的3行)
注意:如果您知道一种不使用Regex而具有良好可读性和更好性能的方法,请随时提供给我
谢谢,阿里雷扎给你
(\d+)[\n\r]([\d:,]+\s-->\s[\d:,]+)[\n](.+(?:[\n]*[^\d|^\n]+)*)
结果
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好代码>
(\d+)[\n](.*?)\n((?s).*?)(?=\n\n\d|\Z)
此正则表达式与以下内容匹配
0
00:00:00,000 --> 00:00:00,000
Hello world!
1
00:00:00,000 --> 00:00:00,000
Hello world!
This is my new world.
2
00:00:00,000 --> 00:00:00,000
Hello guys!
This line contains 123457!
This is third line!
And more lines!
作为
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好!
这行包含123457!
这是第三条线!
还有更多的台词代码>
(\d+)[\n\r]([\d:,]+\s-->\s[\d:,]+)[\n](.+(?:[\n]*[^\d|^\n]+)*)
结果
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好代码>
(\d+)[\n](.*?)\n((?s).*?)(?=\n\n\d|\Z)
此正则表达式与以下内容匹配
0
00:00:00,000 --> 00:00:00,000
Hello world!
1
00:00:00,000 --> 00:00:00,000
Hello world!
This is my new world.
2
00:00:00,000 --> 00:00:00,000
Hello guys!
This line contains 123457!
This is third line!
And more lines!
作为
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好!
这行包含123457!
这是第三条线!
还有更多的台词代码>
(\d+)[\n\r]([\d:,]+\s-->\s[\d:,]+)[\n](.+(?:[\n]*[^\d|^\n]+)*)
结果
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好代码>
(\d+)[\n](.*?)\n((?s).*?)(?=\n\n\d|\Z)
此正则表达式与以下内容匹配
0
00:00:00,000 --> 00:00:00,000
Hello world!
1
00:00:00,000 --> 00:00:00,000
Hello world!
This is my new world.
2
00:00:00,000 --> 00:00:00,000
Hello guys!
This line contains 123457!
This is third line!
And more lines!
作为
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好!
这行包含123457!
这是第三条线!
还有更多的台词代码>
(\d+)[\n\r]([\d:,]+\s-->\s[\d:,]+)[\n](.+(?:[\n]*[^\d|^\n]+)*)
结果
比赛1
0
00:00:00000-->00:00:00000
你好,世界代码>
1
00:00:00000-->00:00:00000
你好,世界!
这是我的新世界。
2
00:00:00000-->00:00:00000
大家好代码>
(\d+)[\n](.*?)\n((?s).*?)(?=\n\n\d|\Z)
这个正则表达式