包含一些代码,可以在字符串中找到单个数字,例如“555-555-5555”。但我不太确定如何扩展代码以查找字符串中的所有电话号码。代码在找到第一个数字后停止......
(defn foo [x]
(re-find (re-matcher #"((\d+)-(\d+)-(\d+))" x)))
有没有办法扩展此代码以查找字符串中的所有数字?
答案 0 :(得分:1)
re-seq
将所有匹配的序列返回给字符串中的正则表达式:
user> (defn foo [x] (re-seq #"\d+-\d+-\d+" x))
#'user/foo
user> (foo "111-222-3333 555-666-7777")
("111-222-3333" "555-666-7777")
user> (foo "phone 1: 111-222-3333 phone 2: 555-666-7777")
("111-222-3333" "555-666-7777")
所以它会一直持续到找到字符串中的所有电话号码。
答案 1 :(得分:0)
我有兴趣搜索所有可能的电话号码,根据地区/国家代码和其他参数,检查电话号码库:
https://github.com/randomseed-io/phone-number
有一个函数 child
用于此目的:
https://randomseed.io/software/phone-number/phone-number.core#var-find-numbers