为什么这个正则表达式代码不返回任何东西?

2024-06-16 14:04:30 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么这个正则表达式代码不返回任何东西

#Searches for a pattern in string
pattern = r'[a-zA-Z ]*' 
string = '111-456-7890 This is my number... Gimme a ring.'
match = re.search(pattern, string)
match

Tags: 代码inrenumberforstringismy
1条回答
网友
1楼 · 发布于 2024-06-16 14:04:30

明星是假朋友,试试这个:

[a-zA-Z]+

使用以下命令尝试您的语句:https://regexr.com/

如果使用re.search,则取消仅给出第一个单词的全局标志

网友
2楼 · 发布于 2024-06-16 14:04:30

如果match是类型为re.Match的“唯一”对象,则必须在形式为的if语句中使用它

if match:
    # Some code, if pattern was found

或者使用它的一些方法来获得一些细节,例如。g

match.start()

返回模式在字符串中的起始位置(索引),即12用于(少量修改的)pattern{}和string

完整代码的示例:

import re

pattern = r'[a-zA-Z ]+'
string = '111-456-7890 This is my number... Gimme a ring.'
match = re.search(pattern, string)

if match:
    print("Start position:", match.start())
    print("Matching part:" , match.group())
else:
    print("No match.")

输出:

Start position: 12
Matching part:  This is my number

相关问题 更多 >