Gre*_*les 1 regex intellij-idea
我正在尝试提出一个搜索/替换表达式,它将从带有时间戳字段的 Oracle 样式插入转换为另一个数据库的插入语句。
基本上,我想转换字符串,如:
to_timestamp('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')
Run Code Online (Sandbox Code Playgroud)
只是:
'13-SEP-09 12.00.00.000000000 PM'
Run Code Online (Sandbox Code Playgroud)
我在 IDEA 的搜索/替换框中尝试了几个表达式,但我仍然不太明白。这个:
to_timestamp(.[^,]*,.[^)]*)
Run Code Online (Sandbox Code Playgroud)
替换为 $1 最终匹配我想要的字符串,除了右括号之外,然后只删除第一部分。我最终得到:
('13-SEP-09 12.00.00.000000000 PM','DD-MON-RR HH.MI.SS.FF AM')
Run Code Online (Sandbox Code Playgroud)
我真的不明白这里发生了什么。
看起来你想要:
to_timestamp\(('[^']*')[^)]*\)
Run Code Online (Sandbox Code Playgroud)
分解它:
to_timestamp 很明显
\( 匹配开头括号
( 开始捕捉
'[^']' 匹配第一个带引号的字符串
) 停止捕捉
[^)]*\) 匹配剩余的文本
如果这是您要匹配的整个字符串,而不仅仅是较大文本的一部分,则可以使用.*代替[^)]*\)最后一部分;你并不真正关心闭幕后会发生什么'。
| 归档时间: |
|
| 查看次数: |
439 次 |
| 最近记录: |