输入
有多组数据,每组一行
输出
对每组数据, 抽取出其中的tag及其包含的电话号码中的区号输出。每个tag输出为一行。tag外的电话号码不用理会。
如果找不到tag及其包含的电话号码, 则输出NONE
数据保证不会出现两个tag重叠的情况。
样例输入
2 <bb>(01)-123<a>bbb(02)-2784KK</a><xy>stk(1)-123(03)-345b</xy>(04)-123</xy><z>(05)-123</zz>zz<yy>(06)-123</yy> <bb>(01)-123<a><k>1223</k><a>(01)-12</a>
样例输出
<xy>1,03</xy> <yy>06</yy> NONE
import re
n=int(input())
for j in range(n):
s = input() #下面这行我就不明白
m = '<(.+?)>(.*?)</\\1>' #难道\\1就是第一个的输入?
ss=re.findall(m,s)
if len(ss)==0:
print("NONE")
else:
flag=0 #为第一次输出<>中的字串准备的
first=0 #为中间输出的准备的标志
h=0 #是最后虽然有tag,但没有匹配的准备的标志位
for x in ss:
m='\([0-9]{1,2}\)-[0-9]{3,}'
t=re.findall(m,x[1])
for i in t: #脑子弄糊了,条件都加上了,有待改进啊
if i[-4:-5:-1]=='-' and flag==0:#一个t就输出一次<>中的
print("<" + x[0] + ">", end="")
flag=1
if first==1:# 有了第一次了,就打个,号
print(",",end="")
if i[2:3]==')' and i[-4:-5:-1]=='-':
print(i[1:2],end="")#输出中间部分区间号
first=1
h=1
elif i[3:4]==')' and i[-4:-5:-1]=='-':
print(i[1:3],end="")#输出中间部分区间号
first=1
h=1
if flag==1:
print("</" + x[0] + ">",end="")
print("")
flag=0
first=0
if h==0:
print("NONE")