需求是提前 有证建筑面积22627.48㎡,无证建筑面积1273.85㎡ 相应的土地使用权共计面积14711.00㎡
下面是代码
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.lang3.StringUtils;
public class RegexTest2
{
public static void main(String[] args)
{
String regex = "([\u4e00-\u9fa5]{4,10}?(?:有证|无证|建筑|面积))([(-?\\d+)(\\.\\d+)?]{2,10})([(㎡)?]{0,1})";
String str =
"试例1:有证建筑面积22627.48㎡,无证建筑面积1273.85㎡,无证部分按现状处置,涉及违法、违章部分,由买受人自行接受行政主管部门依照有关行政法规的处理;附属物包括室内装修物、门窗、灯具、厨房及厕所内固定设施、电梯等;相应的土地使用权共计面积14711.00㎡,";
System.out.print("敏感字如下:");
System.out.println(getKeyWordsC(regex, str));
System.out.println(getKeyWordsCC(regex, str));
}
// 提取 中括号中关键字
public static List<String> getKeyWordsCC(String regex, String str)
{
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher(str);
List<String> list = new ArrayList<String>();
while (matcher.find())
{
if (StringUtils.isNotBlank(matcher.group()))
{
list.add(matcher.group());
}
}
return list;
}
// 提取 中括号中关键字
public static String getKeyWordsC(String regex, String str)
{
Pattern p = Pattern.compile(regex);
Matcher matcher = p.matcher(str);
StringBuffer strBuf = new StringBuffer(0);
while (matcher.find())
{
if (StringUtils.isNotBlank(matcher.group()))
{
strBuf.append(matcher.group());
}
}
return strBuf.toString();
}
}
控制台打印
敏感字如下:有证建筑面积22627.48㎡无证建筑面积1273.85㎡相应的土地使用权共计面积14711.00㎡ [有证建筑面积22627.48㎡, 无证建筑面积1273.85㎡, 相应的土地使用权共计面积14711.00㎡]