用于提取特殊单词的正则表达式[重复]

问题描述 投票:-1回答:1

我试图在正则表达式的帮助下在字符串中提取粗体字。例如:

someWord不正确。然后我做了someThing

如图所示,单词以小写字母开头,然后在中间的某个地方出现大写字母,后跟小写字母。

有人可以帮忙吗?

java regex regex-group
1个回答
0
投票

我的猜测是,

\b\S*[a-z][A-Z]\S*\b

可能会更接近您想要提取的内容。

测试

import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class RegularExpression{

    public static void main(String[] args){

        final String regex = "\\b\\S*[a-z][A-Z]\\S*\\b";
        final String string = "someWord was not correct. Then I did someThing";

        final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
        final Matcher matcher = pattern.matcher(string);

        while (matcher.find()) {
            System.out.println("Full match: " + matcher.group(0));
        }


    }
}

输出

Full match: someWord
Full match: someThing

如果要简化/更新/探索表达式,请在regex101.com的右上角进行说明。如果您有兴趣,可以观看匹配的步骤或在this debugger link中进行修改。调试器演示了a RegEx engine如何逐步使用一些示例输入字符串并执行匹配过程。


RegEx电路

[jex.im可视化正则表达式:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.