[英]regex to replace all occurances text, uppercase first character in a file using c#
我想重命名我的所有sql表,並以第一個字符大寫。
所以:
[blahField] [int] NOT NULL,
應該轉換為:
[BlahField] [int] NOT NULL,
([int]變為[Int]並不重要。
我只是使用ac#控制台應用程序來快速執行此操作。
這就是您想要的:
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,
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],但您說沒關系。
這有效:
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);
正則表達式似乎在這里過分殺傷力。
我認為這只是第一個需要大寫的“ [blabla]” ...
否則,請忽略此答案:)
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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.