如何用引号括住单词 防爆。 美国,美国,“美国”,“美国”,
答案 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;
你可能想要一些错误检查,但这看起来像一个非常简单的任务,不需要任何像正则表达式那样花哨的东西。