регулярное выражение для замены всего текста вхождения, первый символ в верхнем регистре в файле с помощью C # - PullRequest
0 голосов
/ 27 ноября 2009

Я хочу переименовать все мои таблицы sql, используя первый символ в верхнем регистре.

Итак:

[blahField] [int] NOT NULL,

следует преобразовать в:

[BlahField] [int] NOT NULL,

(не имеет значения, если [int] становится [Int].

Я просто использую консольное приложение c #, чтобы сделать это быстро.

Ответы [ 4 ]

1 голос
/ 27 ноября 2009

Это работает:

public static string FixIt(string s) {
   return s.Substring(0, 1) + Char.ToUpper(s[1]) + s.Substring(2);
}

или даже

return "[" + Char.ToUpper(s[1]) + s.Substring(2);

Здесь Regex кажется излишним.

1 голос
/ 27 ноября 2009
string input = "[blahField] [int] NOT NULL,";
string pattern = @"\[(.+?)]";
string result = Regex.Replace(input, pattern,
                    m => "[" +
                        m.Groups[1].Value.Substring(0, 1).ToUpper()
                        + m.Groups[1].Value.Substring(1)
                        + "]"
                );

Это вернет [Int], но вы сказали, что все в порядке.

1 голос
/ 27 ноября 2009

Это делает то, что вы хотите:

string s = "[blahField] [int] NOT NULL,";
s = Regex.Replace(s, @"^\W*\w", new MatchEvaluator(match => match.Value.ToUpper()));
Console.WriteLine(s);

Выход:

[BlahField] [int] NOT NULL,
0 голосов
/ 27 ноября 2009

Полагаю, это только первая "[блабла]", которая должна быть прописной ...

В противном случае игнорируйте этот ответ:)

static void Main(string[] args)
{
    Console.WriteLine(DoTheMrBlah("[blahField] [int] NOT NULL,"));
    Console.ReadKey();
}

static string DoTheMrBlah(string mrBlahMe)
{
    Match m = Regex.Match(mrBlahMe, @"\[([a-z]){1}([a-zA-Z0-9]+)\](.+)");
    if (m.Success)
    {
        char upperme = m.Groups[1].Value.ToUpper()[0];
        return string.Format("[{0}{1}]{2}", upperme, m.Groups[2], m.Groups[3]);
    }
    else return mrBlahMe;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...