项目中遇到一个需求,需要从表达式中取出其中的中文内容,分别赋值给不同变量,例如
String preString;
String suffixString;String regx="IIF((5>2),上升3,下降2)";
String regx1="IIF((5>2),增加了3,减少了2)";
String regx2="IIF((5>2),流入3,流出2)";
……
等等类似的内容,要求从这个类似的三元表达式取出其中的上升、增加了、流入等赋值给preString,下降、减少了、流出赋值给变量suffixString,兄弟们指点一下迷津
String preString;
String suffixString;String regx="IIF((5>2),上升3,下降2)";
String regx1="IIF((5>2),增加了3,减少了2)";
String regx2="IIF((5>2),流入3,流出2)";
……
等等类似的内容,要求从这个类似的三元表达式取出其中的上升、增加了、流入等赋值给preString,下降、减少了、流出赋值给变量suffixString,兄弟们指点一下迷津
String up = "上升";
String down = "下降";
这样代码的难度是不是就下降了呢?
public class TestSimpleExIf
{
public static void main(String[] args)
{
Map<String, String> map = new HashMap();
map.put("x", "54.1");
map.put("y", "5.0");
map.put("z", "7.0");
map.put("d", "2.0");
String exp = "IIF([[x]]>5,\"上升\"+[[x]],\"下降\"+[[y]])";
isChinese(exp);
} public static boolean isChinese(String str) {
String regEx = "[\u4e00-\u9fa5]";
Pattern pat = Pattern.compile(regEx);
Matcher matcher = pat.matcher(str);
boolean flg = false;
while(matcher.find())
{
System.out.println(matcher.group(0));
}
return flg; }
}
结果显示的是:
上
升
下
降
而不是我想要的"上升"\"下降",如何才能获得这样的结果啊
String reg = "\\),(\\D*)\\d*,(\\D*)\\d*\\)";
Matcher m = Pattern.compile(reg).matcher(regx);
if (m.find()) {
preString = m.group(1);
suffixString = m.group(2);
}
2楼的正确答案没给人家分。HOHO~拖到黑名单中。。