0
我有以下的正則表達式:C#正則表達式中插入符號和美元符號附加
TEST_(\d{4}).xml.gz
哪些應符合以下格式的字符串:
TEST_2015.xml.gz
,我相信這個工程,我有通過Regex測試程序運行它,並在我的C#文件中返回一個匹配項。
此正則表達式也將匹配
sTEST_2015.xml.gz
OR
TEST_2015.xml.gzc
等
這是不是我想要的。
所以我加
^TEST_(\d{4}).xml.gz$
,因爲我想它現在將匹配。
目前爲止還不錯。
我的問題是,當我嘗試這種添加到C#正則表達式匹配,模式不再匹配,如下圖所示:
var FileNameRegex = new Regex(@"^TEST_(\d{4}).xml.gz$");
我也曾嘗試:
var FileNameRegex = new Regex(@"(^)TEST_(\d{4}).xml.gz($)");
var FileNameRegex = new Regex(@"^(TEST_(\d{4}).xml.gz)$");
var FileNameRegex = new Regex(@"\^TEST_(\d{4}).xml.gz\$");
等,但他們不工作。
我錯過了什麼。
我已經看過谷歌和SO,並且在C#中發現了與這些符號有關的問題,但是我找到的解決方案都沒有解決我的問題。
??
下面是一個完整的程序:
static void Main(string[] args)
{
string sReconciliationFileFolder = ConfigurationManager.AppSettings["ReconciliationFileLocation"];
DirectoryInfo sReconciliationFileDirectory = new DirectoryInfo(sReconciliationFileFolder);
foreach (var Reconciliationfile in sReconciliationFileDirectory.GetFiles("*.gz"))
{
var FileNameRegex = new Regex(@"^TEST_(\d{4}).xml.gz$");
Match validFileName = FileNameRegex.Match(Reconciliationfile.FullName);
if (validFileName.Success)
{
Console.WriteLine(Reconciliationfile.FullName);
}
}
Console.WriteLine("FINISHED");
Console.ReadLine();
}
請注意,如果刪除^和$,控制檯應使用Reconciliationfile.Name
文件夾
請給一個簡短而完整的程序演示問題。你向我們展示了*創建一個'Regex'選項的代碼,但不是你在調用它的代碼。 –
瘋狂猜測是文件名中的大小寫混合 - 但在給出一些示例文件名之前無法確定。 – rbm
@JonSkeet我已經發布完整的代碼 – Alex