微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用正则表达式或标记化匹配出现在字符串中的两个单词的第一个出现同时考虑单词之间的距离5个单词

如何解决使用正则表达式或标记化匹配出现在字符串中的两个单词的第一个出现同时考虑单词之间的距离5个单词

我需要帮助匹配mystring中的两个单词“ hello”和“ hope”,但仅计算字符串中的第一个匹配项。他们彼此之间的最大距离是5个字。感谢任何帮助!

mystring = "hello bob nice weather hope you have a good day. hello jan hope weather is nice"

这是我到目前为止所拥有的。我希望结果只捕获第一次出现的“ hello”和“ hope”,然后停止匹配。

pattern = re.findall('\bhello(?:\W+\w+){0,5}\W+hope\b',mystring)

解决方法

我不知道如何使用RegEx在一行代码中进行操作,但是您可以使用regex进行部分处理,并使用列表推导来添加另一行代码。

mystring = "hello bob nice weather hope you have a good day. hello jan hope weather is nice"
pattern = re.findall('hello(?:\W+\w+){0,5}\W+hope',mystring)
pattern

['hello bob nice weather hope','hello jan hope']


new_pattern = [x for x in pattern if len(x.split()) == 5]
new_pattern

['hello bob nice weather hope']

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?