san*_*yav 5 regex postgresql pattern-matching
我想使用分割一个可能包含数值的给定字符串regexp_matches().它应该标识第一次出现的包含可选符号和可选小数位的数值.应该返回不匹配的部分 - 作为数组的第一个和最后一个位置.
一些示例输入和预期输出值:
'hello+111123.454545world' -> {hello,+111123.454545,world}
'he-lo+111123.454545world' -> {he-lo,+111123.454545,world}
'hel123.5lo+111123.454545world' -> {hel,123.5,lo+111123.454545world}
'hello+111123.454545world' -> {hello,+111123.454545,world}
'hello+111123.454545world' -> {hello,+111123.454545,world}
'1111.15' -> {"",1111.15,""}
'-.234' -> {"",-.234,""}
'hello-.234' -> {hello,-.234,""}
Run Code Online (Sandbox Code Playgroud)
我在以下由'TODO'表示的表达式中遇到匹配组的第一部分时遇到问题.它应该匹配任何无法识别为数值的东西.
select regexp_matches('input', '(TODO)((?:\+|-)?(?:\d*(?:(?:\.)?\d+)))(.*)')
Run Code Online (Sandbox Code Playgroud)
由'(TODO)'表示的匹配组需要是第二个匹配组中正则表达式的否定.(因为结果需要退回).匹配数值的正则表达式工作正常,我需要的是如何匹配字符串的第一部分,而不是数值.
| 归档时间: |
|
| 查看次数: |
560 次 |
| 最近记录: |