我有几个名字作为字符串,在其姓氏需要删除之前有一个' x '。
因此,例如,' John xSmith '需要以“ John Smith ”的形式返回,但不会影响像'Jane x Doe'这样的名称。
答案 0 :(得分:1)
使用正则表达式(?<=\s)x(?=[A-Z])
删除所有的x后面跟一个大写字母和一个空格。
答案 1 :(得分:0)
此regEx是否与您的字符串匹配? ^([a-zA-Z] +)x([A-Z] [a-zA-Z] +)* $ 之后,您只需使用括号之间的2匹配来重建字符串而不使用'x'
答案 2 :(得分:0)
这不是使用正则表达式,但它会实现你想要做的事情(包括允许 Jane x Doe 等名称)
static void Main(string[] args)
{
string name = "John xSmith";
var result = new StringBuilder();
string[] splitString = name.Split(' ');
foreach (string partName in splitString)
{
if (partName.Length > 1 && partName.StartsWith("x"))
{
result.Append(partName.Substring(1));
}
else
{
result.Append(partName);
}
result.Append(" ");
}
Console.WriteLine(result.ToString().Trim());
Console.ReadKey();
}
使用name = "John xSmith"
会生成 John Smith
使用name = "Jane x Doe"
会生成 Jane x Doe