如何用一个表示任何字符串或任何数字的变量替换字符串和数值



我使用的是c#,需要重命名很多文件。它们都遵循相同的命名约定。如AA-A0000-(1+)-A_ words-sdsd_。唯一的问题是所有部分都遵循这个模式,但A0000和(1+)部分会逐个文件更改。如果字符串遵循该模式,我怎么能在上面运行我的自定义函数呢?

如果文件以两个字母开头,一个连字符,一个字母后面跟着4个数字,另一个连字母,一个数字,然后另一个连字号,然后更改文件名,我该怎么说呢?

正如评论者所指出的,正则表达式就是你的答案。在.NET中,它使用Regex类。有许多关于正则表达式的教程,您可以查看;有关.NET版本的文档,请访问https://msdn.microsoft.com/en-us/library/az24scfc.aspx.

根据上面示例中文件名的不同部分的变化情况,可以根据需要更改正则表达式。例如,

Regex.Replace(fileName, @"[a-z ]+-A(d{4}-(d+)", "BB-B$1", RegexOptions.IgnoreCase);

将匹配AA-A0000-(1+)AA-A3456-(72+)C D-A3456-(72+)等,并将A(和"C D")替换为B。看见https://dotnetfiddle.net/hFpUkW这是一个实际的例子。

您可以使用regex。

例如,如果你的文件名看起来像这样:

aB-C0101-2-some text that contains-Numbers_01987etc.ext

那么匹配它的模式将是:

[a-zA-Z]{2}-[a-zA-Z]d{4}-d-[s0-9a-zA-Z_-]+.[a-zA-Z]{3}

这里有一些额外的资源:

教程:http://www.regular-expressions.info/tutorial.html

在线测试正则表达式(还有很多):

http://www.regexr.com/

http://www.regexplanet.com/

Regex.Replace()方法在C#中的应用示例:

http://www.dotnetperls.com/regex-replace

相关内容

最新更新