0

Excel ファイルを読み込んで、その名前が特定のパターンに従っているかどうかを確認する必要があります。

パターンは CDFSDDRCxxxCurryymmdd です。xxx は数字、Curr は EUR または GBP、yymmdd は日付です。

これは私のファイル名、CDFSDDRC603EUR120124.xls です。.xlsx にすることもできます。

そして、これが私のコードです。

Match nameIsValid = Regex.Match(activeWorkbook.Name,
@"CDFSDDRC(?<xxx>[0-9]+)(?<xxx>[A-Z]+)(?<yymmdd>[0-9][0-9][0|1][0-9][0-3][0-9])\.xls?");

nameIsValid.success を false として取得し続けます。私の正規表現は大丈夫だと思いますが、もう一度。何か案は?ルイ・マルティンス

4

2 に答える 2

0

日付の一致のパターンがやや混乱しています。日付とは実際には一致しませんが、数字の単なる組み合わせです。|また、文字クラス内では使用できません。日付がどのように構成されているかをよく考えてください。

さらに、 という名前の重複一致グループがありxxxます。これは、それらのいずれかにアクセスするときに、C# の動作を確実に台無しにします。

これを試してみてください

/CDFSDDRC(?<xxx>\d+)(?<curr>[A-Z]+)(?<yymmdd>\d{2}(?:0[1-9]|1[12])(?:(?:0|1|2)[1-9]|3[0-2]))\.xlsx?/
于 2012-09-05T13:32:04.290 に答える
0
CDFSDDRC(?<xxx>\d+)(?<curr>EUR|GBP)(?<yymmdd>\d{2}[0-1]\d[0-3]\d)\.xlsx?

以下は、xls と xslx の両方で機能します。

于 2012-09-05T13:32:11.823 に答える