因此,例如,它将匹配文件名ABC_DEF_20120925_110001.csv,但不匹配文件名ABCD_EFG_20120925_110000.csv.
以下非Oracle正则表达式有效:
^ABCD_EFG_[0-9]*_(?!110000|140000|180000)[0-9]*\.csv$
但我不知道如何把它写成Oracle正则表达式.
解决方法 Oracle不支持超前断言,因此您必须拼出所有有效匹配:^ABCD_EFG_[0-9]*_([02-9]|1[0235679]|1[148]0{0,3}[1-9])[0-9]*\.csv$
应该工作(假设时间部分总是6位数).
说明:
ABCD_EFG_ # Match ABCD_EFG_[0-9]*_ # Match first number (date part) and _( # Match a number that starts with [02-9] # 0 or 2-9| # or 1[0235679] # 1,followed by 2,3,5,6,7,or 9| # or 1[148] # 11,14,or 18 0{0,3} # followed by up to three zeroes [1-9] # but then one digit 1-9) # End of alternation[0-9]* # Fill the rest with any digits\.csv # Match .csv (mind the backslash!)总结
以上是内存溢出为你收集整理的匹配除值列表之外的任何值 – oracle正则表达式全部内容,希望文章能够帮你解决匹配除值列表之外的任何值 – oracle正则表达式所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)