gpt4 book ai didi

java - 如何确定子串或匹配?

转载 作者:行者123 更新时间:2023-11-30 08:26:49 25 4
gpt4 key购买 nike

我有一个带有 | 的正则表达式(or) 在其中,我想确定正则表达式中 or 的哪一部分匹配:

可能的输入:

-- 输入 1 --

Stuff here to keep.

-- First --
all of this below
gets
deleted

-- 输入 2 --

Stuff here to keep.

-- Second --
all of this below
gets
deleted

用于匹配传入输入源的一部分并确定 | 的哪一部分的正则表达式(或)被匹配? “--第一--”或“--第二--”

 Pattern PATTERN = Pattern.compile("^(.*?)-+ *(?:First|Second) *-+", Pattern.DOTALL);
Matcher m = PATTERN.matcher(text);
if (m.find()) {
// How can I tell if the regex matched "First" or "Second"?

我如何判断哪个输入匹配(第一个或第二个)?

最佳答案

正则表达式不包含该信息。但是,您可以使用一些额外的组来解决这个问题。

示例模式:(?:(First)|(Second))

在字符串 First 上,第二个捕获组将为空,对于 Second,第一个捕获组将为空。对返回到 Java 的组的简单检查将告诉您正则表达式的哪一部分匹配。

编辑:我假设 FirstSecond 是为了简单起见用作占位符,实际上代表更复杂的表达式。如果您真的想查找匹配的两个字符串中的哪一个,则使用一个捕获组(如下所示:(First|Second))并将其内容与 First 进行比较会很好地完成工作。

关于java - 如何确定子串或匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21246606/

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