From ae531d71a338850560b5a8f7c673d487c2293ed3 Mon Sep 17 00:00:00 2001 From: meihaoshidai <845611259@qq.com> Date: Mon, 27 Jul 2020 21:00:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=8F=8D=E6=96=9C=E6=9D=A0\?= =?UTF-8?q?=E8=AF=86=E5=88=AB=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ql/util/express/parse/WordSplit.java | 2 +- .../ql/util/express/bugfix/BackSlashTest.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/ql/util/express/bugfix/BackSlashTest.java diff --git a/src/main/java/com/ql/util/express/parse/WordSplit.java b/src/main/java/com/ql/util/express/parse/WordSplit.java index a30da0255..cd56a466b 100644 --- a/src/main/java/com/ql/util/express/parse/WordSplit.java +++ b/src/main/java/com/ql/util/express/parse/WordSplit.java @@ -36,7 +36,7 @@ public static Word[] parse(String[] splitWord,String str) throws Exception{ if (c=='"' || c=='\''){//字符串处理 int index = str.indexOf(c,i + 1); //处理字符串中的”问题 - while(index >0 && str.charAt(index - 1) =='\\'){ + while(index >0 && str.charAt(index - 1) =='\\' && str.charAt(index - 2) !='\\'){ index = str.indexOf(c,index + 1); } if (index < 0) diff --git a/src/test/java/com/ql/util/express/bugfix/BackSlashTest.java b/src/test/java/com/ql/util/express/bugfix/BackSlashTest.java new file mode 100644 index 000000000..4ee615ce5 --- /dev/null +++ b/src/test/java/com/ql/util/express/bugfix/BackSlashTest.java @@ -0,0 +1,19 @@ +package com.ql.util.express.bugfix; + +import com.ql.util.express.DefaultContext; +import com.ql.util.express.ExpressRunner; +import com.ql.util.express.IExpressContext; +import org.junit.Test; + +//脚本中包含 反斜杠 测试 +public class BackSlashTest { + + @Test + public void test() throws Exception { + ExpressRunner runner = new ExpressRunner(); + String exp = "a=\"\\\\\";"; + IExpressContext context = new DefaultContext(); + Object result = runner.execute(exp,context,null,false,true); + System.out.println(result); + } +}