gpt4 book ai didi

regex - 在 Ruby 中使用正则表达式提取信息?

转载 作者:行者123 更新时间:2023-12-02 18:57:23 24 4
gpt4 key购买 nike

我有这个字符串

+••••••••••• 99短信(185999922)

我正在寻找正则表达式来提取这 3 个信息

  1. 电话号码 +••••••••••• 99
  2. 短信模式
  3. 设备 ID 185999922

我尝试过提取设备 ID

device_id = result.match(/.*\t.*\t\((.*)\)/)

但是不起作用

最佳答案

你可以使用

\A([^\t]+)\t([^\t]+)\t\((\d+)\)\z
\A(?<phone>[^\t]+)\t(?<mode>[^\t]+)\t\((?<device_id>\d+)\)\z

请参阅Rubular demo详细信息:

  • \A - 字符串开头
  • ([^\t]+) - 捕获组 1:除制表符之外的一个或多个字符
  • \t - 一个选项卡
  • ([^\t]+) - 捕获组 2:除制表符之外的一个或多个字符
  • \t - 一个选项卡
  • \( - 一个 ( char
  • (\d+) - 第 3 组:一位或多位数字
  • \) - 一个 ) 字符
  • \z - 字符串结尾。

如果您使用命名捕获组(正则表达式#2),则可以通过以下方式获得方便的哈希结果

s="+••• •••• •• •• 99\tSMS\t(185999922)"
p s.match(/\A(?<phone>[^\t]+)\t(?<mode>[^\t]+)\t\((?<device_id>\d+)\)\z/).named_captures
# => {"phone"=>"+••• •••• •• •• 99", "mode"=>"SMS", "device_id"=>"185999922"}

请参阅Ruby demo .

关于regex - 在 Ruby 中使用正则表达式提取信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66018454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com