У меня есть строка:
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;
Но это возвращает все слова перед ",".
(Мне нужно вернуться между
"(" а также ","
"," а также ","
"," а также ")"
)
Я спросил, как это сделать. Поэтому я хотел знать, как и учиться. Я новичок в Regex. И это не ответ.
Возможный дубликат Получить подстроку безусловной части





Вы можете попробовать использовать регулярное выражение \\(([^)]+)\\), чтобы слово содержалось в скобках, затем используйте функцию Replace, чтобы позволить , в *
string res = "hello(hi,mo,wo,ka)";
var regex = Regex.Match(res, "\\(([^)]+)\\)");
var result = regex.Groups[1].Value.Replace(',','*');
Результат
hi*mo*wo*ka
Спасибо за ответ. Мне это нравится! P.S. который возвращает его с квадратными скобками, например: (привет, mo, wo, ka), но в любом случае спасибо.
@Qrai Рад помочь :)
Сюда :
Regex rgx = new Regex(@"\((.*)\)");
var result = rgx.Match("hello(hi,mo,wo,ka)");
Почему вы не используете Regex?