C#中字符串的替换
Replacement of String in C#
我有一个字符串“productname-producttype-front-view.png”。我需要将其显示为“PRODUCTNAME-PRODUCTTYPE 前视图”。
到此为止了
string y = x.Replace(".png", " ").ToUpper();
现在,我卡住了...请帮忙。提前致谢
您可以使用 Path.GetFileNameWithoutExtension
和 String.Split
来提取标记:
string fileName = "productname-producttype-front-view.png";
string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);
string[] tokens = fileNameWithoutExtension.Split('-');
现在借助 LINQ 和 String.Join
:
很容易得到想要的结果
var newTokens = tokens.Select((s, index) => index >= 2 ? s : s.ToUpper());
string result = String.Join(" ", newTokens); // puts a space between each token
您可以使用以下基于正则表达式的方法:
var line = "productname-producttype-front-view.png";
var pattern = @"^(.*)-([^-]+-[^-]+)\.[^-.]+$";
var m = Regex.Match(line, pattern);
var result = string.Format("{0} {1}", m.Groups[1].Value.ToUpper(),
m.Groups[2].Value.Replace("-", " "));
Console.WriteLine(result);
它的作用:
- 将字符串解析为初始部分和最后一个连字符之后的所有部分,仅捕获初始部分和
-
之间的 2 个子部分(不捕获将被删除的扩展名)
- 开头部分(第 1 组)只是大写,而结尾部分
-
全部变成空格。
图案解释:
^
- 字符串开始
(.*)
- 第 1 组尽可能捕获换行符以外的任何 0+ 个字符(但产生与下一个子模式匹配的字符串的一部分)
-
- 一个连字符
([^-]+-[^-]+)
- 第 2 组捕获 -
以外的 1+ 个字符,然后是 -
,然后再次捕获 -
以外的 1+ 个字符
\.[^-.]+
- 一个点后跟 .
和 -
以外的 1+ 个字符
$
- 字符串结尾。
我有一个字符串“productname-producttype-front-view.png”。我需要将其显示为“PRODUCTNAME-PRODUCTTYPE 前视图”。
到此为止了
string y = x.Replace(".png", " ").ToUpper();
现在,我卡住了...请帮忙。提前致谢
您可以使用 Path.GetFileNameWithoutExtension
和 String.Split
来提取标记:
string fileName = "productname-producttype-front-view.png";
string fileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(fileName);
string[] tokens = fileNameWithoutExtension.Split('-');
现在借助 LINQ 和 String.Join
:
var newTokens = tokens.Select((s, index) => index >= 2 ? s : s.ToUpper());
string result = String.Join(" ", newTokens); // puts a space between each token
您可以使用以下基于正则表达式的方法:
var line = "productname-producttype-front-view.png";
var pattern = @"^(.*)-([^-]+-[^-]+)\.[^-.]+$";
var m = Regex.Match(line, pattern);
var result = string.Format("{0} {1}", m.Groups[1].Value.ToUpper(),
m.Groups[2].Value.Replace("-", " "));
Console.WriteLine(result);
它的作用:
- 将字符串解析为初始部分和最后一个连字符之后的所有部分,仅捕获初始部分和
-
之间的 2 个子部分(不捕获将被删除的扩展名) - 开头部分(第 1 组)只是大写,而结尾部分
-
全部变成空格。
图案解释:
^
- 字符串开始(.*)
- 第 1 组尽可能捕获换行符以外的任何 0+ 个字符(但产生与下一个子模式匹配的字符串的一部分)-
- 一个连字符([^-]+-[^-]+)
- 第 2 组捕获-
以外的 1+ 个字符,然后是-
,然后再次捕获-
以外的 1+ 个字符
\.[^-.]+
- 一个点后跟.
和-
以外的 1+ 个字符
$
- 字符串结尾。