如何使用String.Replace
函数来使用模式?替换为模式匹配
我想这样做:
newTextBox = newTextBox.Replace("<Value> #'a string of any number of chars#' </Value>",
"<Value>" + textBoxName + "</Value>");
#“任意数目的字符#的字符串”可以是任何字符串。
如何使用String.Replace
函数来使用模式?替换为模式匹配
我想这样做:
newTextBox = newTextBox.Replace("<Value> #'a string of any number of chars#' </Value>",
"<Value>" + textBoxName + "</Value>");
#“任意数目的字符#的字符串”可以是任何字符串。
使用正则表达式:
newTextBox.Text =
Regex.Replace(
newTextBox.Text,
@"<Value>[^\<]+</Value>",
"<Value>" + textBoxName.Text + "</Value>");
我会添加一个简短的正则表达式的解释,并链接到作弊表http://www.mikesdotnetting.com/Article/46/CSharp-Regular-Expressions-Cheat-Sheet – ANeves 2012-01-10 10:25:52
您应该使用Regex
,这就是为什么它的存在。 Regex
也可以做这样的?:
const string textBoxName = "textBoxName";
var newTextBox = "<Value>{0}</Value>".Replace("{0}", textBoxName);
为什么使用'string.Replace(。 ..)'而不是'string.Format(字符串格式,...)'? – Nuffin 2012-01-10 10:56:44
@Tobias:确实如此。如果我要演示哪些元素被替换为{0},{1},{2}等,或者是否需要特定的格式(Int16或具有N个零/小数位的浮点数),String.Format会更好。 )。我猜如果OP使用占位符如'#replaceabletext#'或{0}以外的其他东西,我给出的.Replace()示例会更合适。{N} – 2012-01-10 11:25:05
用正则表达式参考:
using System.Text.RegularExpressions;
而且要替换字符:[0-9a-zA-Z_#' ]
newTextBox.Text = Regex.Replace(
"<Value> #'a string of any number of chars#' </Value>",
@"<Value>[0-9a-zA-Z_#' ]*</Value>",
"<Value>" + textBoxName.Text + "</Value>",
RegexOptions.IgnoreCase);
正则表达式? – CodeZombie 2012-01-10 10:18:56