gpt4 book ai didi

java - 在 Java 的正则表达式中捕获标题大小写组

转载 作者:行者123 更新时间:2023-12-02 06:18:05 25 4
gpt4 key购买 nike

我需要从我的段落中捕获标题大小写标题案例示例是

入院 bla bla bla bla

你好 bla bla bla bla

中午到达 bla bla bla bla

中午前到达请不要迟到

这里的大家好希望你们做得很好

这里的大家好希望你们做得很好

承认患者应匹配

从上面的示例中,标题大小写的所有单词的第一个字母都大写,除了:a、an、the、at、by、for、in、of、on、to、up、and、as、but、 it、or、nor(可以大写,但不必大写)

有人可以帮我获取这个的正则表达式吗?

 private static final String titleCase= *your regex here* 

static final Pattern titleCasePattern = Pattern.compile(titleCase);
Matcher match = titleCasePattern .matcher(text);

while (match.find())
{
String match= match.group(1); //This should give me the title case group which is Admit to Patient,Hello There..etc
}

最佳答案

以下模式(假设您只想匹配 ASCII 字母;如果不想匹配,请使用 \p{Lu} 而不是 [A-Z] 表示大写字母,\p{Ll} 代替 [a-z] 表示小写字母,并使用 Pattern.UNICODE 选项编译正则表达式)应该可以工作:

(?:                                # Start of group:
\b # Match start of a word
(?: # Start of inner group:
[A-Z][a-z]* # Either match an uppercase word
| # or
(?:a[nts]|the|by|for|i[nt]| # one of these "special" words
o[fnr]|to|up|and|but|nor)
) # End of inner group
\b # Match end of word
\s+ # Match one or more whitespace characters
)+ # Match one or more of the above.

查看live on regex101.com .

在 Java 中,不要忘记正确转义反斜杠:

Pattern regex = Pattern.compile(
"(?: # Start of group:\n" +
" \\b # Match start of a word\n" +
" (?: # Start of inner group:\n" +
" [A-Z][a-z]* # Either match an uppercase word\n" +
" | # or\n" +
" (?:a[nts]|the|by|for|i[nt]| # one of these 'special' words\n" +
" o[fnr]|to|up|and|but|nor) \n" +
" ) # End of inner group\n" +
" \\b # Match end of word\n" +
" \\s+ # Match one or more whitespace characters\n" +
")+ # Match one or more of the above.",
Pattern.COMMENTS);
Matcher regexMatcher = regex.matcher(subject);
if (regexMatcher.find()) {
ResultString = regexMatcher.group();
}

关于java - 在 Java 的正则表达式中捕获标题大小写组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21271111/

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