java正则匹配内容问题

我有一段html代码,例如:
<p style="margin-bottom: 16cm;">
一、项目名称:单人课桌50cm凳采购
</p>

现在我想用正则匹配标签内的属性值16cm,而不匹配50cm

具体匹配代码为:
content.replace(正则,function(str){…………}

其中content是保存替换的html代码的字符串,function中的str是获取出来的16cm,不能有别的

请教上面正则位置的正则表达式应该怎么写啊?
最好下周一之前回答哦。看不明白请留言发问。
最新回答
罌粟花开

2024-06-25 11:03:54

String string = "<p style=\"margin-bottom: 16cm;\">    一、项目名称:单人课桌50cm凳采购</p>";
String reg = "\\<[^\\:]+\\:([^\\>]+);?\"\\>";
Pattern pattern = Pattern.compile (reg);
Matcher matcher = pattern.matcher (string);
while (matcher.find ())
{
System.out.println (matcher.group ().replaceAll (reg, "$1"));
}


js:

var str = "<p style=\"margin-bottom: 16cm;\">    一、项目名称:单人课桌50cm凳采购</p>";

var reg = /\<[^\:]+\:([^\>]+);?\"\>/;

str.match(reg)[1]
追问
你这js的正则写的取的太多了吧,如果标签里还有别的属性在冒号后面,不是也出来了吗?
追答
那你用别的方式吧,估计这个不合适用正则
追问
这个是ueditor的一个BUG,我也就问下,如果不能就不强求了。
追答
UE啊,恩,应是不能强求吧,我感觉应该是空格或者>分开吧,应该也可以啊
〆゛凹凸曼|▍

2024-06-25 09:06:05

\\d+cm(?=;)
上面的正则是匹配style中的16cm
追问
我上面的字符串只是个例子,16cm后面可能没有分号啊,你这样写不对吧。
追答
cm(?=[^]*>)
替换成px
人不行不怪路不平

2024-06-25 07:46:16

你要的这个正则是从content中找到什么样的字符串啊?没看懂你写的
追问
真正目的,是吧content中html标签内的属性值cm变成px,而标签之间能显示在浏览器上的cm不要变成px。