如何在Java中根据多个正则表达式模式匹配字符串
我了解如何使用管道符号将单个字符串与多个正则表达式模式进行匹配,如对该问题的一些回答中所述: 我的问题是,当我有以下字符串时:如何在Java中根据多个正则表达式模式匹配字符串,java,regex,Java,Regex,我了解如何使用管道符号将单个字符串与多个正则表达式模式进行匹配,如对该问题的一些回答中所述: 我的问题是,当我有以下字符串时: this_isAnExample of What nav-input a-autoid-9-announce thisIsAnExampleToo 我使用以下正则表达式来提取文本: [A-Z][a-z]*|(?<=_)[A-Za-z-]* 但我实际上得到的是: isAnExample What Is An Example Too 基本上,引擎会自动将单词与示
this_isAnExample of What nav-input a-autoid-9-announce thisIsAnExampleToo
我使用以下正则表达式来提取文本:
[A-Z][a-z]*|(?<=_)[A-Za-z-]*
但我实际上得到的是:
isAnExample
What
Is
An
Example
Too
基本上,引擎会自动将单词与示例链接,因为它与下划线模式匹配,但我希望它将它们视为两个单词(非贪婪?)bec根据另一种模式,还有另一种匹配。您可以使用此交替正则表达式来捕获所有小写文本,这些文本前面有
\uu
或混合大小写文本:
((?<=_)[a-z][a-z-]*|[A-Z][a-z]*)
((?您可以使用这个交替正则表达式来捕获前面有或混合大小写文本的所有小写文本:
((?<=_)[a-z][a-z-]*|[A-Z][a-z]*)
((?您可能希望正则表达式
[A-Z][a-z]*|(?<=_)[a-z-]*
[A-Z][A-Z]*|(?您可能会将正则表达式
[A-Z][a-z]*|(?<=_)[a-z-]*
[A-Z][A-Z]*|(?仅供参考。如果输入仅为。
,它将找到与空字符串匹配的项。@anubhava你是对的。遗憾的是,OP没有描述应该匹配的项,他只给出了一个示例…将正则表达式中的*
替换为+
。仅供参考。如果输入仅为
,它将找到与空字符串匹配的项。)tring.@anubhava你是对的。遗憾的是,OP没有描述应该匹配的内容,他只给出了一个例子……只匹配非空字符串,将正则表达式中的*
替换为+
。