[英]Regex required for renaming file in C#
我需要一個正則表達式來重命名c#中的文件。 我的文件名為22px-Flag_Of_Sweden.svg.png
。 我希望將其重命名為sweden.png
。
因此,我需要正則表達式。 請幫我。
I have various files more than 300+ like below:
22px-Flag_Of_Sweden.svg.png - should become sweden.png
13px-Flag_Of_UnitedStates.svg.png - unitedstates.png
17px-Flag_Of_India.svg.png - india.png
22px-Flag_Of_Ghana.svg.png - ghana.png
這些實際上是國家的國旗。 我想提取Countryname.Fileextension。 就這樣。
var fileNames = new [] {
"22px-Flag_Of_Sweden.svg.png"
,"13px-Flag_Of_UnitedStates.svg.png"
,"17px-Flag_Of_India.svg.png"
,"22px-Flag_Of_Ghana.svg.png"
,"asd.png"
};
var regEx = new Regex(@"^.+Flag_Of_(?<country>.+)\.svg\.png$");
foreach ( var fileName in fileNames )
{
if ( regEx.IsMatch(fileName))
{
var newFileName = regEx.Replace(fileName,"${country}.png").ToLower();
//File.Save(Path.Combine(root, newFileName));
}
}
我不確定在c#中的外觀(盡管正則表達式很重要,而不是語言),但是在Java中,它看起來像這樣:
String input = "22px-Flag_Of_Sweden.svg.png";
Pattern p = Pattern.compile(".+_(.+?)\\..+?(\\..+?)$");
Matcher m = p.matcher(input);
System.out.println(m.matches());
System.out.println(m.group(1).toLowerCase() + m.group(2));
與您相關的部分是:
".+_(.+?)\\..+?(\\..+?)$"
只是把這兩個小組聯系在一起。
我希望我現在對C#有所了解:)
干杯尤金。
這將返回第一個捕獲組中的國家: ([a-zA-Z]+)\\.svg\\.png$
我不知道C#,但是正則表達式可能是:
^.+_(\pL+)\.svg\.png
替換部分為: $1.png
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.