我是groovy编程的新手,我正在尝试使用groovy来检索随机出现在文本文件中的电话号码,然后将这些值存储在我的groovy程序中的arraylist中。文本文件的示例如下:
代码行 你好,你好111-111-1111 猫狗狗猫 999-999-9999 另一行代码777-777-7777
我想要显示的输出: 111-111-1111 999-999-9999 777-777-7777
我知道如何引用该文件并检索所有代码行和特定数字/单词等,但我不确定只检索文本文件中存在的电话号码的常规方法
答案 0 :(得分:0)
将元素添加到列表的最简单方法是+=
运算符。
下面是一个示例程序,它从中提取电话号码 多行字符串的每个源行,将它们收集在列表中, 并打印清单。
def src = '''\
Line of code Hello how are you 111-111-1111 Cat dog dog cat 999-999-9999.
I'm fine and how are you 111-111-2222 Cat dog dog cat 999-999-8888.
No phone number here.
Another line of code 777-777-8888\
'''
def pat = ~/\b\d{3}-\d{3}-\d{4}\b/
def phones = []
def cnt = 0
src.eachLine{
def matcher = (it =~ pat)
def mCnt = matcher.getCount()
printf("Row %d: %s / %d phones.\n", ++cnt, it, mCnt)
for (i = 0; i < mCnt; ++i) {
phones += matcher[i]
}
}
printf("%d phones: %s.\n", phones.size(), phones.join(', '))