-3

削除する必要がある姓の前に「 x 」を持つ文字列としていくつかの名前があります。

したがって、たとえば、' John xSmith ' は ' John Smith 'として戻す必要がありますが、'Jane x Doe' のような名前には影響しません。

4

3 に答える 3

1

正規表現(?<=\s)x(?=[A-Z])を使用して、x の後に大文字が続き、空白の後にあるすべてを削除します。

于 2013-07-04T15:48:48.163 に答える
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"プロデュースする

Jane x Doename = "Jane x Doe"を作成します。

于 2013-07-04T15:54:21.343 に答える
0

この正規表現は文字列と一致しますか? ^([a-zA-Z ]+)x([AZ][a-zA-Z ]+)*$ その後、括弧の間に 2 つの一致を使用して、「x」なしで文字列を再構築するだけです。

于 2013-07-04T15:51:13.277 に答える