所以,我有这两个文件名:
SomeFile_08_20110225153831.txt.gz
ThatOtherFile_15_20110411125902.txt_11.gz
Run Code Online (Sandbox Code Playgroud)
我想做一个正则表达式,它总能在任一文件的文件名中将日期返回到日期.以为这会对它进行排序:
^SomeFile_.*?_([0-9]{8}).*|ThatOtherFile_.*?_([0-9]{8}).*$
Run Code Online (Sandbox Code Playgroud)
目前它只捕获表达式中的第一个...
最后,我将在Oracle替换中使用它:
REGEXP_REPLACE(
file_name,
'^SomeFile_.*?_([0-9]{8}).*|ThatOtherFile_.*?_([0-9]{8}).*$',
'\1')
Run Code Online (Sandbox Code Playgroud)
我现在有两个分开的表达式,它可以工作,但你知道,我希望它更漂亮:)
谢谢!
F.
^(SomeFile|ThatOtherFile)_.*?_([0-9]{8}).*$
Run Code Online (Sandbox Code Playgroud)
并使用\2,或者如果oracle支持?:或等效使用它来使第一组不捕获并访问日期\1.