我试图在正则表达式的帮助下在字符串中提取粗体字。例如:
someWord不正确。然后我做了someThing
如图所示,单词以小写字母开头,然后在中间的某个地方出现大写字母,后跟小写字母。
有人可以帮忙吗?
我的猜测是,
\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如何逐步使用一些示例输入字符串并执行匹配过程。
[jex.im可视化正则表达式: