48. 在Python交互式命令窗口中运行下面程序段,输出结果与其余三项不同的是( ) A. import re;z=re.search('\W','a2b@3cd#4*5%6e');print(z) B. import re;z=re.search('[^a-zA-Z0-9]','a2b@3cd#4*5%6e');print(z) C. import re,string;z=re.search('['+string.punctuation+']','a2b@3cd#4*5%6e');print(z) D. import re,string;z=re.search('[^'+string.digits+']','a2b@3cd#4*5%6e');print(z)
时间: 2024-01-01 17:03:59 浏览: 121
48. D. import re,string;z=re.search('[^'+string.digits+']','a2b@3cd#4*5%6e');print(z)
选项 A 中使用 re.search() 函数在字符串 'a2b@3cd#4*5%6e' 中查找第一个非字母数字字符,即符号 '@',由于该字符串符合模式,因此返回匹配结果;选项 B 中使用 re.search() 函数在字符串 'a2b@3cd#4*5%6e' 中查找第一个非字母数字字符,即符号 '@',由于该字符串符合模式,因此返回匹配结果;选项 C 中使用 string.punctuation 属性获取了标点符号集合,然后在字符串 'a2b@3cd#4*5%6e' 中查找第一个标点符号,即符号 '@',由于该字符串符合模式,因此返回匹配结果;而选项 D 中使用 string.digits 属性获取了数字集合,然后在字符串 'a2b@3cd#4*5%6e' 中查找第一个非数字字符,即符号 '@',由于该字符串符合模式,因此返回匹配结果。因此,选项 D 输出结果与其余选项不同。
相关问题
50. 在Python交互式命令窗口中运行下面程序段,输出结果与其余三项不同的是( ) A. import re;re.split('\W+','ab?@c#$def&*%gh/\ijk') B. import re;re.split('\W\W*','ab?@c#$def&*%gh/\ijk') C. import re;re.findall('\W+','ab?@c#$def&*%gh/\ijk') D. import re;re.findall('\w+','ab?@c#$def&*%gh/\ijk')
50. B. import re;re.split('\W\W*','ab?@c#$def&*%gh/\ijk')
选项 A 中使用 re.split() 函数将字符串 'ab?@c#$def&*%gh/\ijk' 按照一个或多个非字母数字字符分割成多个子字符串,即 ['ab', 'c', 'def', 'gh', 'ijk'];选项 B 中使用 re.split() 函数将字符串 'ab?@c#$def&*%gh/\ijk' 按照两个非字母数字字符分割成多个子字符串,即 ['ab', 'c', 'def', 'gh', 'ijk'],注意到在该选项中,正则表达式中的 \W* 匹配的是 0 个或多个非字母数字字符,而不是 1 个或多个,因此该选项输出结果与其余选项不同;选项 C 中使用 re.findall() 函数查找字符串 'ab?@c#$def&*%gh/\ijk' 中所有的非字母数字字符,即符号 '?@#$&*%/\',返回一个列表,即 ['?@#$&*%/\'];选项 D 中使用 re.findall() 函数查找字符串 'ab?@c#$def&*%gh/\ijk' 中所有的字母数字子串,返回一个列表,即 ['ab', 'c', 'def', 'gh', 'ijk']。因此,选项 B 输出结果与其余选项不同。
49. 在Python交互式命令窗口中运行下面程序段,输出结果与其余三项不同的是( ) A. import re,string;z=re.finditer('['+string.digits+']','a2b3cd');[i.group() for i in z] B. import re,string;z=re.finditer('[^'+string.ascii_letters+']','a2b3cd');[i.group() for i in z] C. import re;z=re.findall('\D','a2b3cd');z D. import re;z=re.finditer('[^a-z]','a2b3cd',re.I);[i.group() for i in z]
49. A. import re,string;z=re.finditer('['+string.digits+']','a2b3cd');[i.group() for i in z]
选项 A 中使用 re.finditer() 函数查找字符串 'a2b3cd' 中所有的数字字符,即 2 和 3,返回一个迭代器,然后使用列表推导式将迭代器中所有匹配结果的 group() 值取出来,即 ['2', '3'];选项 B 中使用 re.finditer() 函数查找字符串 'a2b3cd' 中所有的非字母字符,即数字 2 和 3,返回一个迭代器,然后使用列表推导式将迭代器中所有匹配结果的 group() 值取出来,即 ['2', '3'];选项 C 中使用 re.findall() 函数查找字符串 'a2b3cd' 中所有的非数字字符,即字母 a、b、c 和 d,返回一个列表,即 ['a', 'b', 'c', 'd'];选项 D 中使用 re.finditer() 函数查找字符串 'a2b3cd' 中所有的非小写字母字符,即数字 2 和 3,返回一个迭代器,然后使用列表推导式将迭代器中所有匹配结果的 group() 值取出来,即 ['2', '3']。因此,选项 A 输出结果与其余选项不同。
阅读全文