gpt4 book ai didi

java - 如何在 Java 中将字符串与多个正则表达式模式进行匹配

转载 作者:行者123 更新时间:2023-12-02 03:23:55 27 4
gpt4 key购买 nike

我了解如何使用管道符号将单个字符串与多个正则表达式模式进行匹配,如该问题的一些答案中所述:Match a string against multiple regex patterns

我的问题是,当我有以下字符串时:

this_isAnExample of What nav-input a-autoid-9-announce thisIsAnExampleToo

我使用以下正则表达式来提取文本:

[A-Z][a-z]*|(?<=_)[A-Za-z-]*

我期望得到以下匹配:

is
An
Example
What
Is
An
Example
Too

但我实际上得到的是:

isAnExample
What
Is
An
Example
Too

基本上,引擎会自动将单词 An 与 Example 链接起来,因为它与下划线模式匹配,但我希望它将它们视为两个单词(非贪婪?),因为根据其他模式,还有另一个匹配项。

最佳答案

您可能将正则表达式设置为

[A-Z][a-z]*|(?<=_)[a-z-]*

第一部分是以大写字母开头的小写单词,或第二部分:小写单词前面带有下划线。

您发布的正则表达式的部分 (?<=_)[A-Za-z-]*匹配下划线后的小写和大写字母,即当大写字母遇到时不会停止匹配,这实际上应该是另一个单词的开头。

关于java - 如何在 Java 中将字符串与多个正则表达式模式进行匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39234540/

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