使用regex,通过对以下字符串执行(?s)X(.*?)Y
:
X
aaa
Y
X
bbb
Y
X
ccc
Y
我得到:
Match1.Group1: "aaa"
Match2.Group1: "bbb"
Match3.Group1: "ccc"
我想得到相同的结果(比赛和小组)与以下:
X
aaaa
X
bbbb
X
cccc
但我无法理解该怎么做。感谢您花时间阅读和回复。
我能想到的办法都试过了。我使用C#语言和https://regex101.com/来测试regex语句。
使用regex,通过对以下字符串执行(?s)X(.*?)Y
:
X
aaa
Y
X
bbb
Y
X
ccc
Y
我得到:
Match1.Group1: "aaa"
Match2.Group1: "bbb"
Match3.Group1: "ccc"
我想得到相同的结果(比赛和小组)与以下:
X
aaaa
X
bbbb
X
cccc
但我无法理解该怎么做。感谢您花时间阅读和回复。
我能想到的办法都试过了。我使用C#语言和https://regex101.com/来测试regex语句。
3条答案
按热度按时间qco9c6ql1#
看看这个
输出量:
inkz8wg92#
没有Regex:
js81xvg63#
您使用的模式
.*?
也可以匹配X
字符,因此必须防止匹配X
字符,直到第一次出现Y
字符。由于您已经在使用捕获组,因此可以使用取反字符类
[^
捕获值,而无需使用(?s)
如果你不想修剪值,并且中间至少应该有一个非空格字符,而不是
X
:Regex demo| C# demo
输出
仅匹配版本,而不是具有正向后看的捕获组:
Regex demo
或者更简单的模式,捕捉任何字符:
Regex demo| C# Demo