首页 > 试题广场 >

下列程序打印结果为( ) impo...

[单选题]
下列程序打印结果为()
import re 
str1 = "Python's features" 
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print str2.group(1)


  • Python
  • Pyth
  • thon’s
  • Python‘s features
re模块实现正则的功能 
re.match(正则表达式,要匹配的字符串,[匹配模式])

要匹配的字符串为str1 = "Python's features" 

正则表达式r'(.*)on(.*?) .*'
r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符)
()符号包住的数据为要提取的数据,通常与.group()函数连用。
.匹配单个任意字符
*匹配前一个字符出现0次或无限次
?匹配前一个字符出现0次或1次
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's

.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分,.group(2) 列出第二个括号匹配部分
发表于 2020-03-08 23:26:21 回复(11)

多个标志可以通过按位 OR(|) 来指定
re.M:多行匹配,影响 ^ 和 $
re.I使匹配对大小写不敏感
分组:即用圆括号将要提取的数据包住,通过 .group()获取,一般和“|”结合使用
re.match( r'(.*)on(.*?) .*', str1, re.M|re.I),将on左边和右边分组
>>print(str2.group(0))
Python's features
>>print(str2.group(1))
Pyth
>>print(str2.group(2))
's
参考:https://blog.csdn.net/liyahui_3163/article/details/78434157
https://www.cnblogs.com/feifeifeisir/p/10627474.html


发表于 2019-08-14 00:33:04 回复(5)
str1 = "Python's features"
r'(.*)on(.*?) .*'
有几个()就有几个group
group(0) = group() = Python's features
第一个()=group(1)
第二个()=group(2)
.*适配所有
?到后面的空格为止
发表于 2019-11-09 15:01:42 回复(1)
re模块实现正则的功能  
re.match(正则表达式,要匹配的字符串,[匹配模式]) 

要匹配的字符串为str1 = "Python's features" 

正则表达式r'(.*)on(.*?) .*'
r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符)
()符号包住的数据为要提取的数据,通常与.group()函数连用。
.匹配单个任意字符
*匹配前一个字符出现0次或无限次
?匹配前一个字符出现0次或1次
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's

re.M:多行匹配,影响 ^ 和 $
re.I:使匹配对大小写不敏感
|:or

.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分, Pyth        ->pyth
.group(2) 列出第二个括号匹配部分  ‘s
发表于 2020-03-22 12:24:08 回复(3)
import re 
str1 = "Python's features" 
str2 = re.match( r'(.*)on(.*?)r.*', str1, re.M|re.I)
print (str2.group(0))
print (str2.group(1))
print (str2.group(2))
Python's features
Pyth
's featu
re即regular,正则模块
re.match(正则表达式,要匹配的字符串,[匹配模式])
多个标志可以通过按位 OR(|) 来指定
re.M:多行匹配,影响 ^ 和 $
re.I使匹配对大小写不敏感
关于正则表达式 r'(.*)on(.*?)r.*'
r指的是后面只是一个普通的字符串(比如\n会译为\和n,而不是换行符,re不能直接匹配换行符,匹配数字等需要对照特定的正则表达式)
待匹配字符串:str1 = "Python's features" 
()包住的数据为要提取的数据
. 匹配任意字符
* 表示匹配前面的出现0次或无数次
?表示匹配前面的出现0次或1次
import re 
str1 = "Python'sonononononon features" 
str2 = re.match( r'(.*?)on(.*?) .*', str1, re.M|re.I)
print (str2.group(1))
print (str2.group(2))
Pyth
'sonononononon
import re 
str1 = "Python'sonononononon features" 
str2 = re.match( r'(.*)on(.*?) .*', str1, re.M|re.I)
print (str2.group(1))
print (str2.group(2))
Python'sononononon
原题目:
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's
.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分,.group(2) 列出第二个括号匹配部分


编辑于 2022-03-10 22:13:34 回复(0)
看不懂这段代码
发表于 2020-11-25 09:57:12 回复(0)
第一个为group1,这里需要注意,并不是跟列表等一样都是由0开始
发表于 2019-11-28 08:50:41 回复(0)
补充一点,其他的看王皮球大佬的解释即可,
re.match(strs),当中第一个参数字符串,re.match()方法是匹配字符串开头第一个单词的内容,如果匹配不到返回None
发表于 2022-05-11 16:31:16 回复(0)
<p>简单粗暴,有 on 的选项都错</p>
发表于 2020-11-05 21:57:59 回复(0)
作出解释:
r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符)
()符号包住的数据为要提取的数据,通常与.group()函数连用。
.匹配单个任意字符
*匹配前一个字符出现0次或无限次
?匹配前一个字符出现0次或1次
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's

.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分,.group(2) 列出第二个括号匹配部分
发表于 2022-05-11 15:42:04 回复(0)
re模块实现正则的功能  re.match(正则表达式,要匹配的字符串,[匹配模式]) 要匹配的字符串 为str1 = &amp;amp;quot;Python's features&amp;amp;quot;  正则表达式r'(.*)on(.*?) .*' r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符) ()符号包住的数据为要提取的数据,通常与.group()函数连用。 .匹配单个任意字符 *匹配前一个字符出现0次或无限次 ?匹配前一个字符出现0次或1次 (.*)提取的数据为str1字符串中on左边的所有字符,即Pyth (.*?)提取的数据为str1中on右边,空格前面,即's .group(0)输出的是匹配正则表达式整体结果 .group(1) 列出第一个括号匹配部分, .group(2) 列出第二个括号匹配部分 多个标志可以通过按位 OR(|) 来指定 re.M:多行匹配,影响 ^ 和 $ re.I:使匹配对大小写不敏感 分组:即用圆括号将要提取的数据包住,通过 .group()获取,一般和“|”结合使用 re.match( r'(.*)on(.*?) .*', str1, re.M|re.I),将on左边和右边分组 >>print(str2.group(0)) Python's features >>print(str2.group(1)) Pyth >>print(str2.group(2)) 's 参考:https://blog.csdn.net/liyahui_3163/article/details/78434157 https://www.cnblogs.com/feifeifeisir/p/10627474.html 到空格中断,所以只匹配空格前面的。
编辑于 2021-05-05 23:50:28 回复(0)
r'(.*)on(.*?) .*'     r'(.*)on(.*?)后面这.*有啥用????
发表于 2020-08-26 14:51:05 回复(0)
多个标志可以通过按位 OR(|) 来指定 re.M:多行匹配,影响 ^ 和 $ re.I:使匹配对大小写不敏感 分组:即用圆括号将要提取的数据包住,通过 .group()获取,一般和“|”结合使用 re.match( r'(.*)on(.*?) .*', str1, re.M|re.I),将on左边和右边分组 >>print(str2.group(0)) Python's features >>print(str2.group(1)) Pyth >>print(str2.group(2)) 's
发表于 2019-10-04 01:53:33 回复(0)
Hmk头像 Hmk
我看了其实评论讲的.*? 不是很详细,尽量少的匹配 比如aabab 使用a.*b 以a开始 b结束 匹配aba 同理 on(.*?) 空格 on开始 空格结束 匹配's
发表于 2023-05-09 23:55:00 回复(0)
只看懂了re. match()是实现正则表达,属实是太菜了😂
发表于 2022-09-09 22:31:25 回复(0)
救!正则看不懂😭
发表于 2022-03-07 23:32:29 回复(0)
re模块实现正则的功能  
re.match(正则表达式,要匹配的字符串,[匹配模式]) 

要匹配的字符串为str1 = "Python's features" 

正则表达式r'(.*)on(.*?)  .*'
r表示后面的字符串是一个普通字符串(比如\n会译为\和n,而不是换行符)
()符号包住的数据为要提取的数据,通常与.group()函数连用。
.匹配单个任意字符
*匹配前一个字符出现0次或无限次
?匹配前一个字符出现0次或1次
(.*)提取的数据为str1字符串中on左边的所有字符,即Pyth
(.*?)提取的数据为str1中on右边,空格前面,即's(——匹配到空格,是因为代码在(.*?)与.*之间有一个空格
    

re.M:多行匹配,影响 ^ 和 $
re.I:使匹配对大小写不敏感
|:or

.group(0)输出的是匹配正则表达式整体结果
.group(1) 列出第一个括号匹配部分, Pyth        ->pyth
.group(2) 列出第二个括号匹配部分  ‘s

编辑于 2024-05-15 14:59:03 回复(0)
str2 = re.match( r'(.*)on(.*?)空格.*',   记住这里有个空格,所以识别到空格会停止
编辑于 2024-04-13 23:17:06 回复(0)
  • 匹配应该不区分大小写(re.I)。
  • 表达式应该在多行模式下运行(re.M)。
发表于 2024-03-27 17:02:37 回复(0)
正则表达式我从开发到现在一直不记得 7年了啊。。 不用怎么会记得啊
编辑于 2023-12-21 20:48:21 回复(0)