Python 这段代码只打印单词student,而不打印后面的名称。我使用regex来表示相同的名称
我使用正则表达式模块从以下文本中打印学生姓名,但是在代码中,当我定义我的姓名regex时,它只打印单词student,如何修复它Python 这段代码只打印单词student,而不打印后面的名称。我使用regex来表示相同的名称,python,regex,Python,Regex,我使用正则表达式模块从以下文本中打印学生姓名,但是在代码中,当我定义我的姓名regex时,它只打印单词student,如何修复它 import re list = '''Student name - Shaurya Ronak Ajmera Age - 7 years Std - 2nd Parents name - Ronak and Shital Ajmera Phone no - ****************** Address - **
import re
list = '''Student name - Shaurya Ronak Ajmera
Age - 7 years
Std - 2nd
Parents name - Ronak and Shital Ajmera
Phone no - ******************
Address - ***********
Knows gujarati - can speak and understand. Reads and writes small sentences.
Batch - 11 to 12:30 am'''
numberRegex = re.compile(r'\d{10}')
nameRegex = re.compile(r'(student)\.*[A-Z a-z]+',re.I)
mo = nameRegex.findall(list)
print(mo)
no = numberRegex.findall(list)
print(no)
您可以重复匹配
学生姓名-
之后的所有姓名,并在组中捕获该部分
您可以省略A-Z并在character类中保留A-Z,因为re.I
使匹配不区分大小写
student name - ([a-z]+(?: [a-z]+)*)
见
范例
nameRegex = re.compile(r'student name - ([a-z]+(?: [a-z]+)*)', re.I)
re.findall给出了捕获组的所有值,您可以省略
(学生)
周围的括号,它仍然不起作用。如果您想打印学生姓名,请参阅我已将其添加为答案。