gpt4 book ai didi

java - 我的正则表达式没有按我的预期工作

转载 作者:行者123 更新时间:2023-12-01 17:32:16 24 4
gpt4 key购买 nike

这是我的正则表达式模式:

[A-Z][a-z]?-?([A-Z][a-z]?)?

我希望这个正则表达式匹配以下内容:

A
Ab
Ef-G
Hi-Jk
F-Tk
F-D

我发送它“M-F”,它只匹配“F”,我希望它匹配整个字符串“M-F”。

这是我的java代码(但希望你不必阅读它):

// Convert the daycode string into an array of daycodes
ArrayList<String> newDP = new ArrayList<String>();

Pattern regex = Pattern.compile("[A-Z][a-z]?-?([A-Z][a-z]?)?", Pattern.UNICODE_CASE);
Matcher regexMatcher = regex.matcher(dayPattern);
while (regexMatcher.find())
{
for (int i = 1; i <= regexMatcher.groupCount(); i++)
{
newDP.add(regexMatcher.group(i));
}
}

帮帮我?请并谢谢您。

编辑:我还需要对其进行缩放,以便输入:

MTu-ThFSa

返回输出:

["M", "Tu-Th", "F", "Sa"]

最佳答案

使用 anchors 强制它匹配整个字符串: ^[A-Z][a-z]?-?([A-Z][a-z]?)?$

尽管您可能应该稍微更改一下分组以真正只匹配这些分组。像这样的东西:

^[A-Z]  ([a-z]  (-  ([A-Z]  ([a-z])?  )?  )?  )?$
|-------------------------------------|
|-------------------------|
|-----------------|
|-----|

关于java - 我的正则表达式没有按我的预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9815668/

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