gpt4 book ai didi

java - 在正则表达式中使用 OR 运算符

转载 作者:行者123 更新时间:2023-12-01 23:36:03 25 4
gpt4 key购买 nike

如何在 Java 正则表达式中使用 OR?我尝试了以下操作,但它返回 null 而不是文本。

Pattern reg = Pattern.compile("\\*+|#+ (.+?)");
Matcher matcher = reg.matcher("* kdkdk"); \\ "# aksdasd"
matcher.find();
System.out.println(matcher.group(1));

最佳答案

搜索XY的正则表达式语法是(X|Y)。如果模式中有其他内容,则需要括号。您正在搜索以下模式之一:

a literal * repeated one or more times

或者

a literal # repeated one or more times, followed by a space, followed by one or more of any character, matching a minimum number of times

此模式使用 OR 的第一部分匹配 *,但由于该子模式未定义捕获组,因此 matcher.group(1) 将为 null。如果您打印 matcher.group(0),您将得到 * 作为输出。

如果您想捕获以“*”或“#”开头的行中空格右侧的第一个字符,重复多次,后跟一个空格和至少一个字符,您可能需要:

Pattern.compile("(?:\\*+|#+) (.+?)");

如果您希望所有内容都位于该空间的右侧,您需要:

Pattern.compile("(?:\\*+|#+) (.+)");

关于java - 在正则表达式中使用 OR 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18679921/

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