.net 获取给定单词后的字符

qgelzfjb  于 2022-12-24  发布在  .NET
关注(0)|答案(1)|浏览(106)

如何在文件名中找到某个单词,并在它后面得到一些字符?

    • 例如:**

文件01-垂直-第4天-型号01 - 01
文件02-型号01 - 02-第2天
如何永远找到一个文件名中的单词Model,并提取它后面的5个字符,即XX-XX
我相信在找到搜索单词Model的方法之后,我可以使用.substring()来获得我想要的字符,但是我还没有找到确切的方法来做到这一点,因为单词Model的位置不遵循我可以使用-Split的模式。

hujrc8aj

hujrc8aj1#

就我个人而言,我会选择regex和named capture(不过请注意这句名言-- “有些人在遇到问题时会想”我知道,我会使用正则表达式。“现在他们有两个问题。"):

PS C:\windows\system32> 'File 02 - Model 01-02 - Day 02' -match 'Model (?<model>\d+-\d+)' 
True 
PS C:\windows\system32> $Matches.model 
01-02

正则表达式-Model (?<model>\d+-\d+)',正则表达式解释- @regex101:
Model按字面匹配字符Model(区分大小写)
第一捕获组(\d+-\d+)
\d匹配除表意文字(相当于\p{Nd})以外的任何文字中的数字0到9
+在一次和无限次之间匹配前一个令牌,尽可能多地匹配,根据需要返回(贪婪)
-与索引为4510(2D 16或558)的字符-完全匹配(区分大小写)

相关问题