我想使用正则表达式从包含 SQL 语句的字符串中提取“绑定变量”参数。在 Oracle 中,参数以冒号为前缀。
例如,像这样:
SELECT * FROM employee WHERE name = :variable1 OR empno = :variable2
Run Code Online (Sandbox Code Playgroud)
我可以使用正则表达式从字符串中提取“variable1”和“variable2”吗?也就是说,获取以冒号开头并以空格、逗号或字符串末尾结尾的所有单词。
(如果在 SQL 语句中多次使用同一个变量,我不在乎是否多次获得相同的名称;稍后我可以解决这个问题。)
这可能有效:
:\w+
Run Code Online (Sandbox Code Playgroud)
这只是意味着“一个冒号,后跟一个或多个单词类字符”。
显然,这假设您有一个兼容 POSIX 的正则表达式系统,该系统支持字类语法。
当然,这只匹配一个这样的引用。为了两者兼得,并跳过噪音,类似这样的事情应该有效:
(:\w+).+(:\w+)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7146 次 |
| 最近记录: |