在正则表达式中使用包含空格的字符串需要帮助

时间:2016-11-06 19:58:36

标签: python regex

我希望字符串以" shivam"开头。 (没有引用)。我的正则表达式是:(?=shivam\s)\w+ 但在shivam之后他们不能匹配空间我该做什么?

输入是:

shivam gupta

预期输出为:

gupta

双方都没有任何空间。我的输出是shivam gupta

1 个答案:

答案 0 :(得分:2)

如果你想学习一点正则表达式

import re
s = "shivam gupta"
m = re.match(r"shivam\s+(\w+)$", s)
if m:                 # Check if the pattern matches the string
    print(m.group(1)) # print only Group 1 contents

请参阅Python demo

re.match方法仅在字符串的开头搜索,因此在开始时会查找shivam。然后\s+匹配一个或多个空格,最后,(\w+)$匹配并将匹配到第1组一个或多个字符,然后是字符串$的结尾。

第1组内容可通过匹配对象的.group(1)访问(此处为m)。

但是,您可以在此处使用字符串方法和拆分操作:

s = "shivam gupta"
if s.startswith("shivam "):
    print(s.split()[1])    # or even print(s[s.find(" "):])

Another demo