简单的java正则表达式匹配和替换

mei*_*ryo 4 java regex

所以我有myString包含字符串

"border-bottom: solid 1px #ccc;width:8px;background:#bc0b43;float:left;height:12px"
Run Code Online (Sandbox Code Playgroud)

我想用正则表达式来检查它是否包含 "width:8px" (\bwidth\s*:\s*(\d+)px)

如果为true,则将宽度值(即上例中的8)添加到myList.

尝试:

if (myString.contains("\\bwidth\\s*:\\s*(\\d+)px")) {
    myList.add(valueofwidth) //unsure how to select the width value using regex
}
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

编辑:所以我调查了contains方法,发现它不允许正则表达式.matches将允许正则表达式,但它寻找完全匹配.

Roh*_*ain 5

你需要使用Matcher#find()方法.

从文件: -

尝试查找与模式匹配的输入序列的下一个子序列.

然后你可以从中获取被捕获的组: -

Matcher matcher = Pattern.compile("\\bwidth\\s*:\\s*(\\d+)px").matcher(myString);

if (matcher.find()) {
    myList.add(matcher.group(1));
}
Run Code Online (Sandbox Code Playgroud)