Python 这段代码只打印单词student,而不打印后面的名称。我使用regex来表示相同的名称

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 - **

我使用正则表达式模块从以下文本中打印学生姓名,但是在代码中,当我定义我的姓名regex时,它只打印单词student,如何修复它

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给出了捕获组的所有值,您可以省略
(学生)
周围的括号,它仍然不起作用。如果您想打印学生姓名,请参阅我已将其添加为答案。