为什么此正则表达式代码不返回任何内容?

时间:2018-11-26 21:46:30

标签: python regex

为什么此正则表达式代码不返回任何内容?

#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

2 个答案:

答案 0 :(得分:1)

星星是假朋友,请尝试以下操作:

[a-zA-Z]+

尝试使用以下语句:https://regexr.com/

如果您使用re.search,请取消激活仅提供第一个单词的全局标记。

答案 1 :(得分:0)

match仅是re.Match类型的对象,您必须在if语句中以以下形式使用它

if match:
    # Some code, if pattern was found

或使用其某些方法来获取一些详细信息,例如g。

match.start()

返回字符串中模式的起始位置(索引),即12表示您的pattern r'[a-zA-Z ]+'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