![]() 20分 |
(.*\[.*\].*)|(.*\].*\[.*) |
![]() |
谢谢兄弟,就是还有个问题想请教下你,比如有一个字符串“又到吃饭时间了[微笑]我们去吃饭吧,好不好?ok123”想把它分成“又到吃饭时间了”、“[微笑]”、“我们去吃饭吧,好不好?”、“123”,该怎么写正则表达式?
|
![]() |
比如有一个字符串“又到吃饭时间了[微笑]我们去吃饭吧,好不好?ok123”想把它分成“又到吃饭时间了”、“[微笑]”、“我们去吃饭吧,好不好?”、“ok”、“123”,该怎么写正则表达式?
|
![]() |
没看出来规则是什么? |
![]() |
static void RegexSplit()
{
string txt = @"又到吃饭时间了[微笑]我们去吃饭吧,好不好?ok123";
var arr = Regex.Split(txt, @"(\b(?=\[)|(?<=\])\b)|((?<=[,?])\b)");
foreach (var str in arr)
{
Console.WriteLine(str);
}
}
ok123不分了 |
![]() |
我自己在否面加了把字母和数字分开的表达式(\b(?=\[)|(?<=\])\b)|(?=[1-9]d*$\b)|(?=[a-zA-Z]),但是效果不太对 |
![]() |
txt = @”[微笑]又到123吃饭时间了ok[微笑]我们去吃饭吧,好不好?ok123″想把中文、英文、数字、还有含有[]都分别分开的 |
![]() |
static void RegexSplit()
{
string txt = @"又到吃饭时间了[微笑]我们去吃饭吧,好不好?ok123";
var arr = Regex.Split(txt, @"(?=\[)|(?<=\])|(?<=[,?])|(?<=[a-zA-Z])(?=\d)");
foreach (var str in arr)
{
Console.WriteLine(str);
}
}
这已经是完全按你字符串定制了…… |
![]() |
嗯嗯,非常感谢大神的帮助,把中文、英文、数字、还有含有[]混排的字符串都分别按照中文、英文、数字、还有含有[]分开的应该怎样做呢?eg:”[微笑]又到123吃饭时间了ok[微笑]123我们去吃饭吧,好不好?ok123″ |
![]() |
按中文,数字,英文还好办,其它的没办法……
[a-zA-Z]+|\d+|[\u4e00-\u9fa5]+ 其它的符号不知道你想干嘛了 |
![]() |
分开成:分开成为“[微笑]“、”又到“、“123”、”吃饭时间了“、”ok“、”[微笑]“、”123“、”我们去吃饭吧,好不好?“、”ok“、123” |
![]() 20分 |
string s = @"[微笑]又到123吃饭时间了ok[微笑]123我们去吃饭吧,好不好?ok123";
MatchCollection match = Regex.Matches(s, @"\[.*?\]|[a-zA-Z]+|[0-9]+|[\u4e00-\u9fa5].*?(?=[a-zA-Z0-9|\[])");
foreach (Match m in match)
{
Console.WriteLine(m.Value);
}
|
![求正则表达式判断一个字符串是否同时含有[] 求正则表达式判断一个字符串是否同时含有[]](https://www.codebye.com/wp-content/uploads/2015/01/jinpai.png)
![求正则表达式判断一个字符串是否同时含有[] 求正则表达式判断一个字符串是否同时含有[]](https://www.codebye.com/wp-content/uploads/2015/01/yinpai.png)
![求正则表达式判断一个字符串是否同时含有[] 求正则表达式判断一个字符串是否同时含有[]](http://img.bbs.csdn.net/upload/201503/26/1427351842_285003.png)