我需要处理一个文件并且它正在工作,但是我需要更改文件模式。这是需要的:someText_XYZ_*.dat
我添加了星号,因此_
接受之后的所有内容,但是不接受具有该名称的文件:someText_XYZ_abc1.dat
模式存储在Oracle表中。当我运行应用程序时,将读取表,并使用文件模式来匹配文件名(可能在Apache Camel中)。当前有效的示例是:.*.csv
和[0-9]{7}.abc.*.csv
我的新模式有什么问题?
这是当前有效的一个示例:
[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
或更可能:
someText_XYZ_.*\.dat
匹配someText_XYZ_
(末尾包含单个下划线),然后匹配任意数量的任何字符(来自.*
),然后匹配文字.dat
。
有很多学习正则表达式的资源。这是一份,如果您不耐烦的话,请准备一份备忘单。