C#-获取字符之间的所有单词

时间:2018-09-15 10:41:25

标签: c# regex string linq

我有一个字符串:

string mystring = "hello(hi,mo,wo,ka)";

我需要将所有参数都放在方括号中。 喜欢:

hi*mo*wo*ka

我尝试过:

string res = "";
string mystring = "hello(hi,mo,wo,ka)";
mystring.Replace("hello", "");
string[] tokens = mystring.Split(',');
string[] tokenz = mystring.Split(')');
foreach (string s in tokens)
{
     res += "*" + " " + s +" ";
}
foreach (string z in tokenz)
{
     res += "*" + " " + z + " ";
}
return res;

但是返回“,”之前的所有单词。

(我需要在

之间返回

“(”和“,”

“,”和“,”

“,”和“)”

3 个答案:

答案 0 :(得分:1)

您可以尝试使用\\(([^)]+)\\)正则表达式在括号中包含这个词,然后使用Replace函数让,*

string res = "hello(hi,mo,wo,ka)";

var regex =  Regex.Match(res, "\\(([^)]+)\\)");
var result = regex.Groups[1].Value.Replace(',','*');

c# online

结果

hi*mo*wo*ka

答案 1 :(得分:0)

这种方式:

  Regex rgx = new Regex(@"\((.*)\)");
  var result = rgx.Match("hello(hi,mo,wo,ka)");

答案 2 :(得分:0)

Split method有一个替代,可让您定义多个定界符:

string mystring = "hello(hi,mo,wo,ka)";
var tokens = mystring.Replace("hello", "").Split(new[] { "(",",",")" }, StringSplitOptions.RemoveEmptyEntries);