gpt4 book ai didi

java - 正则表达式:选择封闭元素内第一个出现的特定单词

转载 作者:行者123 更新时间:2023-11-30 02:34:52 25 4
gpt4 key购买 nike

我有一个包含 url 路径的字符串:

...
/test/section/1.png
"/test/section/test/2.png" "/test/section/test/2.png"
(/test/section/test/3.png)
...

我想获取引号或括号中包含的 url 元素的所有第一次“测试”出现。

到目前为止,我已经完成了使用 '"' 或 '(': 获取每个字符串的第一次出现:

(\(|\")(\/orbeon\/)
<小时/>

匹配项以粗体显示

当前输出:

/test/section/1.png

"/test/ section/test/2.png" "/test/ section/test/2.png"

(/test/ section/test/3.png)

<小时/>

期望的输出:

/test/section/1.png

" /test/ section/test/2.png" " /test/ section/test/2.png"

( /test/ section/test/3.png)

如何排除匹配单词之前的字符?

小心!我只想要每个包含的 url 路径中出现的第一个单词:

极端情况:/test/section/test/2.png

在 java 中使用此正则表达式

最佳答案

您当前的(\(|\")(\/orbeon\/)正则表达式匹配("进入组 1 和 /orbeon/进入第 2 组。

因此,当您执行matcher.find()时,您需要使用 matcher.group(2) 访问组 2 .

否则,使用后视:Pattern.compile("(?<=[(\"])/orbeon/") ,您将可以通过 matcher.group() 访问必要的文本。或matcher.group(0)(?<=[(\"])正向回顾将断言 ( 的存在或"之前/orbeon/ ,如果不存在,则不会有任何匹配。

关于java - 正则表达式:选择封闭元素内第一个出现的特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43342814/

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