【问题标题】:I am using regex (.*) to extract the following information but it's leaving half of it behind我正在使用正则表达式 (.*) 来提取以下信息,但它留下了一半
【发布时间】:2021-10-06 02:48:34
【问题描述】:

我正在使用 refex (.*),\s- 来提取下面的文本“Foz do Iguaçu”

我正在使用“DepartCity”格式:“Diante do cenário desafiador que estamos passando, seu voo para (.*), Foz do Iguaçu (IGU), no dia 01/03/2021 , foi cancelado devido a ajustes em nossa malha aérea。",

但它留下了文本的结尾,即 (IGU), no dia 01/03/2021, foi cancelado devido a ajustes em nossa malha aérea。",

我在这里做错了什么?

谢谢

【问题讨论】:

  • 所有这 4 个字符在正则表达式 (.*) 中都有特殊含义,因此它们应该被转义。您的内容没有破折号,因此- 使您的正则表达式无用。您似乎正在尝试从 JSON 字符串中提取数据,这是一个糟糕的主意。使用regex101.com 测试您的正则表达式。
  • 我只是在使用似乎有效的方法。没关系,如果这是一个可怕的想法。谢谢

标签: .net regex regex-group


【解决方案1】:

正如评论者所说,您需要转义这些特殊字符:

\(\.\*\), (.*)

然后您的第一个捕获组将包含字符串:

Foz do Iguaçu (IGU),编号 01/03/2021,foi cancelado devido a ajustes em nossa malha aérea。

在这里试试:https://regex101.com/r/Gdwbh4/1

我假设你想提取字符串的整个剩余部分在 "(.*)," 之后。

此外,您不应直接在 JSON 字符串上使用 RegEx。相反,首先解析 JSON 以检索值,然后您可以在其上执行 RegEx。

【讨论】:

    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多