【问题标题】:What is the right regex for extracting string after first symbol?在第一个符号之后提取字符串的正确正则表达式是什么?
【发布时间】:2020-02-28 14:28:36
【问题描述】:

在谷歌数据工作室中,我想创建一个 REGEXP_EXTRACT 来获取第一个 | 符号 (https://regex101.com/r/w3BqW4/2) 之后的字符串。我试过正则表达式:

[|].*?$

但这又回来了:

' | Leren afzaklaarzen Elisio | kalk'

所以我仍然需要失去第一个' | '。谁能帮帮我?

示例:

输入:Toral | Leren afzaklaarzen Elisio | kalk

输出:Leren afzaklaarzen Elisio | kalk

【问题讨论】:

  • 请分享您尝试了解您遇到的问题的代码。
  • 这是一个可能的匹配模式。 /[|].*?$/
  • @AkinOkegbile 与正则表达式 '[|].*?$' 它正在返回:| Leren afzaklaarzen Elisio |考克。所以我还是需要输掉第一个'| '。
  • 您没有捕获组,那么您希望如何提取内容?
  • 就像一组一样,([|].*$)

标签: regex google-data-studio re2


【解决方案1】:

将捕获组 () 添加到 初始 RegEx 就可以了:

REGEXP_EXTRACT(Field, "[|](.*)?$")

添加 cricket_007 的建议“您不能有“零个或多个”字符中的“零个或一个””:

REGEXP_EXTRACT(Field, "[|](.*)$")

Google Data Studio Report 演示:

【讨论】:

    【解决方案2】:

    如果你想捕捉第一个竖线之后的每个字符,看起来像这样

    \\|(.*)$

    .* 后面不需要问号

    【讨论】:

    • 当我在regex-golang.appspot.com/assets/html/index.html 中尝试正则表达式时,它的输出与输入相同。
    • 嗯,看看 REGEXP_EXTRACT 文档,这似乎是你想要的
    • 我只想分组:'Leren afzaklaarzen Elisio |卡克'
    • 我明白了。再次尝试正则表达式101。添加不贪婪的修饰符。它对我有用
    猜你喜欢
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-02-23
    • 2022-06-15
    • 1970-01-01
    相关资源
    最近更新 更多