【发布时间】:2016-11-21 20:57:57
【问题描述】:
我有一句话,“姓名#2”,
我需要将“#”替换为“No.”,
最后一句必须是“2号名字”。
代码 -
string sentence = Regex.Replace("Name # 2", "\\#\\b", "No.");
显然 Regex.Replace 无法将“#”替换为“否”,是否有通过正则表达式解决问题的正确方法。 谢谢 我正在寻找正则表达式模式的原因是因为有一个执行的通用代码如下所示
string pattern = string.Format(@"\b{0}\b", context);
sentence = System.Text.RegularExpressions.Regex.Replace(sentence, pattern, suggestion);
上下文 - “#”
句子 - “名字#2”
建议 - “不”。
预期句子 - “2 号姓名”
实际句子 - “姓名#2”
上下文 - “曾经”
句子 - “他要去”
建议 - “曾经”
预期的句子 - “他要去”
实际句子 - “他要去”
上下文 - “a”
sentence - “他正处于某个时间点。”
建议 - “z”
预期句子 - “他在 z 时间点”
【问题讨论】:
-
天啊!为什么是正则表达式?
-
@ThomasWeller 我已经编辑了我的问题。
-
\b匹配单词边界(在字母数字和其他字符之间)。在您的输入中,#旁边没有这样的边界。 -
编辑仍然没有解释为什么需要正则表达式。这两种情况似乎都可以通过简单的字符串替换来解决。
-
@ThomasWeller 我需要替换句子中的 a,例如“他在某个时间点回家”,我最终替换了句子中所有可用的 'a,因此使用了正则表达式!