如何在文件名中找到某个单词,并在它后面得到一些字符?
文件01-垂直-第4天-型号01 - 01文件02-型号01 - 02-第2天如何永远找到一个文件名中的单词Model,并提取它后面的5个字符,即XX-XX?我相信在找到搜索单词Model的方法之后,我可以使用.substring()来获得我想要的字符,但是我还没有找到确切的方法来做到这一点,因为单词Model的位置不遵循我可以使用-Split的模式。
Model
XX-XX
.substring()
-Split
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)的字符-完全匹配(区分大小写)
Model (?<model>\d+-\d+)'
(\d+-\d+)
\d
+
-
1条答案
按热度按时间hujrc8aj1#
就我个人而言,我会选择regex和named capture(不过请注意这句名言-- “有些人在遇到问题时会想”我知道,我会使用正则表达式。“现在他们有两个问题。"):
正则表达式-
Model (?<model>\d+-\d+)'
,正则表达式解释- @regex101:Model
按字面匹配字符Model(区分大小写)第一捕获组
(\d+-\d+)
\d
匹配除表意文字(相当于\p{Nd})以外的任何文字中的数字0到9+
在一次和无限次之间匹配前一个令牌,尽可能多地匹配,根据需要返回(贪婪)-
与索引为4510(2D 16或558)的字符-
完全匹配(区分大小写)