google-bigquery - BigQuery REGEXP_REPLACE 在替换表达式中引用捕获组
问题描述
我对正则表达式很陌生,所以这似乎是一个非常愚蠢的问题。
我一直在使用 Google 表格中捕获的组,没有任何问题,但是当我尝试将它应用于 BigQuery 时,它似乎不起作用,我不知道如何实现语法。
我环顾四周,这似乎是最接近的答案,但我无法使其工作: 使用正则表达式查找和替换、组捕获和反向引用
我想在替换表达式中引用一个捕获组来提取或替换£ 1,000.23
此文本:
random text £ 1,000.23 other text
我有3组:
(.+)
(£\ *[\d\.\,]+)
(.+)
这可能不是最好的例子,但我真的很想了解如何在替换部件中使用捕获组,所以我不是在寻找替代解决方案。
下面的代码从字面上返回“$2”而不是“£1,000.23”。
SELECT
note,
REGEXP_REPLACE(note,r'(.+)(£\ *[\d\.\,]+)(.+)','$2') AS note2
FROM
`project.dataset.table`
LIMIT
100
谢谢你的帮助!
解决方案
根据文档中的替换说明,我认为以下应该有效:
SELECT
note,
REGEXP_REPLACE(note,r'(.+)(£\ *[\d\.\,]+)(.+)','\\2') AS note2
FROM
`project.dataset.table`
LIMIT
100
推荐阅读
- ruby-on-rails - Rails - 如何根据最新的儿童添加列出父母?
- javascript - 机器人不能在 IRC 上工作,用 Node.js 编写
- r - fable::forecast 中的索引类
- python - mpmath.nsum() 中的 lambda 有什么替代方法吗?
- javascript - 我可以只使用 JavaScript 和一个按钮元素来更改整个网站(2 页)上的所有图片吗?
- regex - 对可选 ex 的反向引用
- python - 在另一个线程中编辑抽象模型后如何正确更新 pyQt 中的视图?
- ios - SwiftUI:如何在 macOS 中使用 NavigationView?
- android - 如何从节点服务器发送 Firebase 推送通知
- javascript - What happens when setInterval is called within a useEffect