0

我有一个字符串,我想使用一个以特定字符开头的字符来拆分它

Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx

我想用冒号:来分割它x

我试过x:了,但它正在删除 last x

我知道我可以使用这个正则表达式,然后附加x到每个拆分的字符串中,但是有没有办法使用正则表达式拆分这个字符串,以便最后一个x也存在。

4

4 回答 4

3

尝试lookbehind assertion

(?<=x):

你的代码是这样的:

var result = Regex.Split(inputString, "(?<=x):");

解释:

(?<= subexpression)
Zero-width positive lookbehind assertion.

示例:如果您(?<=19)\d{2}

1851 1999 1950 1905 2003结果是

99, 50,05

于 2012-08-16T06:00:37.867 回答
2

零宽度正向回溯断言。

(?<=x):
于 2012-08-16T04:35:30.557 回答
1
var list = Regex.Split("Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx", "(?<=x):");

根据 sbutler 的说法,它使用积极的后视。

于 2012-08-16T04:36:11.920 回答
1

在 C# 的方法中使用正向向后看Regex.Split

string[] substrings = Regex.Split("Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx", "(?<=x):");
于 2012-08-16T04:39:58.650 回答