gpt4 book ai didi

java - 负向后查找中的字范围或\w

转载 作者:行者123 更新时间:2023-12-02 04:14:16 25 4
gpt4 key购买 nike

我试图制作正则表达式来在 Delhi 的位置提取单词在文本中 sending to: GK Delhi ,其中sending to:已修复,我不想捕获 GK 处的任何内容。其实GK在我的例子中将是一个词,我所做的应该有效的是:(?<=sending to: \w )Delhi , 表示单词以 sending to: 开头并以 Delhi 结尾然后返回德里。
请帮我解决这个问题。

最佳答案

三分,

  1. \w匹配单个单词字符。使用\w+匹配一个或多个或 \w*匹配零个或多个单词字符。
  2. 不要忘记 DK 之间的空格和Delhi :\s+
  3. 请注意:(?<=构造是积极的回顾,而不是消极的。

因此正则表达式可能如下所示:

(?<=sending to:\s*\w+\s+)Delhi

另请注意,仅极少数正则表达式引擎支持任意长度的lookbehind,但您没有提及您正在使用的工具。

<小时/>

更新:

Java 不支持任意长度的lookbehind 表达式。您拥有的可能性是:

  • 匹配的文本将始终是 Delhi (匹配成功时)。因此,如果您只是检查匹配项,那么您可以使用正则表达式:sending to:\s*\w+\s+Delhi

  • 如果您想将来将正则表达式扩展到其他城镇,那么您可以使用 capturing group 。例如,正则表达式为 sending to:\s*\w+\s+(Delhi|Mumbai)在 Java 代码中,您可以通过 matcher.group(1) 获取城市名称。

如果您需要更详细的建议,请发布您如何使用正则表达式的实际 Java 代码。

关于java - 负向后查找中的字范围或\w,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33480367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com