gpt4 book ai didi

ruby 正则表达式提取两部分 : digits, 然后之后的任何内容

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:43 24 4
gpt4 key购买 nike

我的用户输入是一个字符串,我需要将其分成两部分,(1) 部分电话号码 [任何数字序列 - .空格,parens 所以我假设它由 /[\d\.\-\(\)]/ ] 和 (2) 以下内容(如果有的话)。

例如

"88 comment" -> "88" & "comment"
"415-915 second part" --> "415-915" & "second part"
"(415) 915 part 2" --> "(415) 915" & "part 2"
"a note" --> "" & "a note"
"part 2" --> "" & "part 2"

作为 ruby 和正则表达式的新手,我不知道如何提取多个部分,以及如何将第二部分定义为第一部分之后的任何内容(这基本上意味着任何不匹配的内容之后的内容第一部分)

最佳答案

这是正则表达式(我将在下面解释):

/^([-\d. ()]*)(.*)$/

^ 表示“从字符串的开头开始”

([-\d.()]*)中,*表示“匹配任意数量的前一个字符,括号表示创建匹配组(这是您稍后获取值的方式)。所以这是第一个序列。

(.*)中,.表示“匹配任意单个字符”,所以.*表示“匹配任意数量的任意字符” ",这基本上是一个包罗万象的。 parent 创建了第二个匹配组。

$ 表示“在字符串末尾结束”

所以在 ruby 中:

string =~ /^([-\d. ()]*)(.*)$/
puts $1.strip # is the phone number (with excess whitespace removed)
puts $2.strip # is the rest (with excess whitespace removed)

关于ruby 正则表达式提取两部分 : digits, 然后之后的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7186147/

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