我有一个字符串,我想使用一个以特定字符开头的字符来拆分它
Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx
我想用冒号:
来分割它x
。
我试过x:
了,但它正在删除 last x
。
我知道我可以使用这个正则表达式,然后附加x
到每个拆分的字符串中,但是有没有办法使用正则表达式拆分这个字符串,以便最后一个x
也存在。
我有一个字符串,我想使用一个以特定字符开头的字符来拆分它
Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx
我想用冒号:
来分割它x
。
我试过x:
了,但它正在删除 last x
。
我知道我可以使用这个正则表达式,然后附加x
到每个拆分的字符串中,但是有没有办法使用正则表达式拆分这个字符串,以便最后一个x
也存在。
尝试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
零宽度正向回溯断言。
(?<=x):
var list = Regex.Split("Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx", "(?<=x):");
根据 sbutler 的说法,它使用积极的后视。
在 C# 的方法中使用正向向后看Regex.Split
:
string[] substrings = Regex.Split("Foo:xxxxxxxxx:Bar:xxxxxxxx:FooBar:xxxxxxx", "(?<=x):");