替换字符串中的 [ ] 括号
Replace [ ] bracket in a string
我有一个包含括号 []
的字符串,围绕着一个数字。由于此字符串代表我的 SQL 数据库的列名称,因此我需要 remove/replace 它们。
到目前为止,我是通过以下方式进行的:
if (stringWithBracket.Contains("[0]"))
noBracket = data.Replace("[0]", "0");
if (stringWithBracket.Contains("[1]"))
noBracket = data.Replace("[1]", "1");
if (stringWithBracket.Contains("[2]"))
noBracket = data.Replace("[2]", "2");
if (stringWithBracket.Contains("[n]"))
noBracket = data.Replace("[n]", "n");
它工作正常,但对我来说它看起来很难看,因为我必须为 [1] 到 [20] 这样做。
有没有办法实现这个“更好”的方法,这意味着对我来说代码更少?
您似乎想删除所有括号:
data = data.Replace("[", string.Empty).Replace("]", string.Empty);
所以你基本上想要一个循环?
for (int i = 0; i <= 20; i++)
{
noBracket = data.Replace(String.Format("[{0}]", i), i);
}
您可以使用Regex.Replace
来确保只提取数字:
var pattern = @"\[(\d+)\]";
var replaced = Regex.Replace(stringWithBracket, pattern, "");
这就是正则表达式擅长的事情:
noBracket = Regex.Replace(stringWithBracket, @"\[(\d+\)]", "")
它匹配 [
(需要转义,因为左括号通常开始一个字符组),后跟一个或多个数字,再后跟一个右括号。数字被捕获(括号),因此可以在替换表达式中使用。
这将替换字符串中的所有匹配项,仅替换第一个匹配项将需要一个更复杂的只匹配一次的正则表达式。
string input="ab[test test}"
input = Regex.Replace(input, @"(\[|\]|\{|\}|\(|\)|\/|\|\'|\.)", "");
result= "abtest test"
我有一个包含括号 []
的字符串,围绕着一个数字。由于此字符串代表我的 SQL 数据库的列名称,因此我需要 remove/replace 它们。
到目前为止,我是通过以下方式进行的:
if (stringWithBracket.Contains("[0]"))
noBracket = data.Replace("[0]", "0");
if (stringWithBracket.Contains("[1]"))
noBracket = data.Replace("[1]", "1");
if (stringWithBracket.Contains("[2]"))
noBracket = data.Replace("[2]", "2");
if (stringWithBracket.Contains("[n]"))
noBracket = data.Replace("[n]", "n");
它工作正常,但对我来说它看起来很难看,因为我必须为 [1] 到 [20] 这样做。
有没有办法实现这个“更好”的方法,这意味着对我来说代码更少?
您似乎想删除所有括号:
data = data.Replace("[", string.Empty).Replace("]", string.Empty);
所以你基本上想要一个循环?
for (int i = 0; i <= 20; i++)
{
noBracket = data.Replace(String.Format("[{0}]", i), i);
}
您可以使用Regex.Replace
来确保只提取数字:
var pattern = @"\[(\d+)\]";
var replaced = Regex.Replace(stringWithBracket, pattern, "");
这就是正则表达式擅长的事情:
noBracket = Regex.Replace(stringWithBracket, @"\[(\d+\)]", "")
它匹配 [
(需要转义,因为左括号通常开始一个字符组),后跟一个或多个数字,再后跟一个右括号。数字被捕获(括号),因此可以在替换表达式中使用。
这将替换字符串中的所有匹配项,仅替换第一个匹配项将需要一个更复杂的只匹配一次的正则表达式。
string input="ab[test test}"
input = Regex.Replace(input, @"(\[|\]|\{|\}|\(|\)|\/|\|\'|\.)", "");
result= "abtest test"