我正在使用http://www.rubular.com/来测试模式匹配的效果。
如果我有AND TO_CHARCREATE_TS, 'yyyymmdd' = '20140810'
这样的文本,则正则表达式AND TO_CHARCREATE_TS, yyyymmdd = '(.*?)'
允许我提取时间戳。但是,当引入括号(例如AND (TO_CHAR(CREATE_TS, 'yyyymmdd') = '20140810')
)时,我无法使用我的正则表达式AND (TO_CHAR(CREATE_TS, 'yyyymmdd') = '(.*?)' )
来提取时间戳。任何帮助表示赞赏
答案 0 :(得分:2)
如果括号位于您要匹配的实际字符串中,则需要使用' \'为了匹配。
AND \(TO_CHAR\(CREATE_TS, 'yyyymmdd'\) = '(.*?)'\)
将匹配示例
AND (TO_CHAR(CREATE_TS, 'yyyymmdd') = '20140810')
此外,根据您要匹配的查询中的其他内容,您可以简化正则表达式以获取这样的引用时间戳:
'(\d{8})'
将匹配单引号内的任何8位数