我需要两个C#正则表达式使用空格进行拆分,但不包括**[:和:]特殊字符之间的文本。
1.需要正则表达式来拆分文本,但排除[:和:]特殊字符之间的文本。
1.需要正则表达式来拆分文本,但排除[:和:]之间的文本以及[和]**特殊字符之间的文本。
- 示例:第一种情况:**
string input1 = "one [two two] three [:four four:] five six [seven seven:] [:eight eight]";
- 输出:**
one
[two
two]
three
[:four four:]
five
six
[seven
seven:]
[:eight
eight]
- 示例:第二种情况:**
- 输出:**
one
[two two]
three
[:four four:]
five
six
[seven
seven:]
[:eight
eight]
我试过了,但不起作用,输出低于
一个三个三个一个
2条答案
按热度按时间vi4fp9gy1#
您可以使用
请参见regex demo。
\[:
-[:
字符串[^][]*
-[
和]
之外的零个或多个字符:]
|
-或\[
-一个[
字符(?!:)
-紧靠右侧,不应有:
[^][]*
-除[
和]
之外的零个或多个字符(?<!:)]
-前面没有:
的]
字符|
-或\S+
-一个或多个非空白字符。o7jaxewo2#
我想你输入的大小写可能不对,应该是
string input1 = "one [two two] three [:four four:] five six [:seven seven:] [:eight eight:]";
你可以用这个正则表达式得到你想要的数组:
var parts1 = Regex.Replace(input1, @"\[\:[a-z ]+\:\] *|\[[a-z ]+\] *", "").Trim().Split(' ');