如何用引号括起来

时间:2011-05-22 15:38:56

标签: c# regex

如何用引号括住单词 防爆。 美国,美国,“美国”,“美国”,

3 个答案:

答案 0 :(得分:4)

在你的情况下

resultString = Regex.Replace(subjectString, @"\b[^,]+\b", "'$0'");

可行,但您可能希望更清楚地定义您的要求。

编辑:

现在您已经澄清了您的字符串总是分为两部分(名称和国家/地区代码),这可能会更好:

resultString = Regex.Replace(subjectString, @"^(.+),\s*([^,]+)$", "'$1', '$2'", RegexOptions.Multiline);

这将更改多行字符串

United States, US
Switzerland, CH
BOLIVIA, PLURINATIONAL STATE OF, BO

'United States', 'US'
'Switzerland', 'CH'
'BOLIVIA, PLURINATIONAL STATE OF', 'BO'

(但如果一次将其应用于一行,也可以。)

答案 1 :(得分:3)

var quoted = myString.Replace("US", "'US'").Replace("United States", "'United States'");

不需要正则表达式来完成一项简单的任务。

答案 2 :(得分:1)

这是一个简单的解决方案,使用字符串操作:

string s = "BOLIVIA, PLURINATIONAL STATE OF, BO";

用单引号包裹:

int lastComma = s.LastIndexOf(", ");
s = String.Format("'{0}', '{1}'", s.Remove(lastComma), s.Substring(lastComma + 2));

如果您在字符串的末尾始终有2个字母,则可以进一步简化:

int lastComma = s.Length - 4;

你可能想要一些错误检查,但这看起来像一个非常简单的任务,不需要任何像正则表达式那样花哨的东西。