无法识别文件格式_ *

Art*_*uro 1 regex

我需要处理一个文件并且它正在工作,但是我需要更改文件模式。这是需要的:someText_XYZ_*.dat

我添加了星号,因此_接受之后的所有内容,但是不接受具有该名称的文件:someText_XYZ_abc1.dat

模式存储在Oracle表中。当我运行应用程序时,将读取表,并使用文件模式来匹配文件名(可能在Apache Camel中)。当前有效的示例是:.*.csv[0-9]{7}.abc.*.csv

我的新模式有什么问题?

Ale*_*ole 5

这是当前有效的一个示例: [0-9]{7}.abc.*.csv

那么这似乎是一个正则表达式模式;其中的句点匹配任何字符。如果要使它们与文件名中的实际句点相匹配,则很可能需要对它们进行转义(除非处理中所做的事情很奇怪):[0-9]{7}.abc.*\.csv[0-9]{7}\.abc.*\.csv[0-9]{7}\.abc\..*\.csv取决于要匹配的实际文件名。

您的新模式someText_XYZ_*.dat将匹配,someText_XYZ然后匹配任意数量的下划线,任意单个字符,然后匹配dat

您可能想要:

someText_XYZ_.*.dat
Run Code Online (Sandbox Code Playgroud)

或更可能:

someText_XYZ_.*\.dat
Run Code Online (Sandbox Code Playgroud)

匹配someText_XYZ_(末尾包含单个下划线),然后匹配任意数量的任何字符(来自.*),然后匹配文字.dat

有很多学习正则表达式的资源。这是一份,如果您不耐烦的话,请准备一份备忘单