gpt4 book ai didi

java - 如何抓取所有以大写字母开头的单词?

转载 作者:搜寻专家 更新时间:2023-11-01 01:37:44 25 4
gpt4 key购买 nike

我想创建一个 Java 正则表达式来获取所有以大写字母开头然后是大写字母或小写字母的单词,但这些字母可能包含重音符号。

示例:

Where

Àdónde

Rápido

Àste

你能帮我吗?

最佳答案

正则表达式:

\b\p{Lu}\p{L}*\b

Java 字符串:

"(?U)\\b\\p{Lu}\\p{L}*\\b"

解释:

\b      # Match at a word boundary (start of word)
\p{Lu} # Match an uppercase letter
\p{L}* # Match any number of letters (any case)
\b # Match at a word boundary (end of word)

警告:这只能在最新的 Java 版本 (JDK7) 中正常工作;对于其他人,您可能需要用更长的子正则表达式替换 \b。如你所见here ,您可能需要使用(感谢@tchrist)

(?:(?<=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])(?![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])|(?<![\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]])(?=[\pL\pM\p{Nd}\p{Nl}\p{Pc}[\p{InEnclosedAlphanumerics}&&\p{So}]]))

对于 \b,所以 Java 字符串看起来像这样:

"(?:(?<=[\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])(?![\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])|(?<![\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])(?=[\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\]))\\p{Lu}\\p{L}*(?:(?<=[\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])(?![\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])|(?<![\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\])(?=[\\pL\\pM\\p{Nd}\\p{Nl}\\p{Pc}\\[\\p{InEnclosedAlphanumerics}&&\\p{So}]\\]))"

关于java - 如何抓取所有以大写字母开头的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7548421/

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