簡體   English   中英

正則表達式,從文件名中提取日期

[英]Regex, extract date from a file name

示例文本是:

Statement_10125229_20170807.pdf

我想得到日期20170807

我能夠使用(?<=_).*?(?=_) = 10125229 提取語句 ID。現在我想提取日期,我嘗試過(?<=_)\d*但我是仍然返回Statement ID。

一般來說, (?<=_)\d+(?=\.)(?<=_)[^_]*(?=\.pdf)可以解決您的問題。 (?<=_)\d+(?=\.)模式匹配一個或多個前面緊跟_並緊跟 . 的數字. . (?<=_)[^_]*(?=\.pdf)模式匹配除_之外的任何零個或多個字符,這些字符前面緊跟_ ,緊跟.pdf

但是,在 C# 中,您實際上可以在沒有正則表達式的情況下獲得所需的 substring。 您可以使用

var text = "Statement_10125229_20170807.pdf";
var result = Path.GetFileNameWithoutExtension(text).Split('_').LastOrDefault();

使用正則表達式,您還可以使用 go 進行捕獲:

var result = Regex.Match(text, @"_(\d+)\.pdf$")?.Groups[1].Value;

在線查看 C# 演示,兩種方法都產生20170807

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM