为了账号安全,请及时绑定邮箱和手机立即绑定

Python Regex - 获取匹配的单词

Python Regex - 获取匹配的单词

至尊宝的传说 2022-06-14 16:10:44
我想在比赛前后得到单词。我可以使用string.split(' ')- 但由于我已经使用了正则表达式,难道没有更好的方法只使用正则表达式吗?使用匹配对象,我可以获得确切的位置。但是,此位置是字符索引的。import remyString = "this. is 12my90\nExample string"pattern = re.compile(r"(\b12(\w+)90\b)",re.IGNORECASE |  re.UNICODE)m = pattern.search(myString)print("Hit: "+m.group())print("Indix range: "+str(m.span()))print("Words around match: "+myString[m.start()-1:m.end()+1]) # should be +/-1 in _words_, not characters输出:命中:12my90 指数范围:(9, 15)比赛周围的话:12my90为了获得匹配的单词和之前的单词,我尝试了:pattern = re.compile(r"(\b(w+)\b)\s(\b12(\w+)90\b)",re.IGNORECASE | re.UNICODE)这不会产生匹配项。
查看完整描述

2 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

在第二种模式中,您必须逃避w+like \w+

除此之外,您的示例中有一个换行符,您可以使用另一个以下内容进行匹配\s

您具有 3 个捕获组的模式可能看起来像

(\b\w+\b)\s(\b12\w+90\b)\s(\b\w+\b)

正则表达式演示

您可以使用捕获组来获取值

print("Words around match: " + m.group(1) + " " + m.group(3))


查看完整回答
反对 回复 2022-06-14
?
长风秋雁

TA贡献1757条经验 获得超7个赞

缺少换行符

regx = r"(\w+)\s12(\w+)90\n(\w+)"


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 130 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信