如何使用正则表达式解决此python问题?

时间:2019-11-08 16:31:15

标签: python regex

请考虑以下Python程序。

import re
  words = input("Say something!\n")
  p = re.compile("my name is (.*)", re.IGNORECASE)
  matches = p.search(words)
  if matches:
    print(f"Hey, {matches[1]}.")
  else:
    print("Hey, you.")

给出类似“我的名字叫伯爵”的输入,该程序会礼貌地输出“嘿,伯爵”。给定 像“我的名字是伯爵·希基”这样的输入,但是,此程序输出“嘿,伯爵·希基, 感觉有点正式。提出如何修改参数以在其中重新编译 这样的方式(无需对Earl进行硬编码),该程序将改为输出Hey, 两种情况下都是伯爵。

1 个答案:

答案 0 :(得分:1)

您可以使用payloadr"my name is (\w+)"将捕获组限制为单词字符序列,因此我们make the assumption将直到单词末尾的所有内容都作为名字。

\w+