【发布时间】:2020-04-24 07:31:03
【问题描述】:
我正在使用字符串正则表达式来拆分以下字符串
String input = "( Customer.browse == \"Car Loan\" ) AND ( Campaign.period BETWEEN 2400 AND 600 ) "
+ "AND ( Customer.eligibity == TRUE ) AND ( Campaign.campaign_name == \"Browse To Start\") "
+ "AND ( Customer.application_started == \"Car Loan\" ) AND ( Time.currenttime BETWEEN 800 AND 2000 ) "
+ "THEN ( Notification.message == SUPPRESS)";
我的字符串标记器类如下
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringRegexClass {
public ArrayList<String> stringTokenizer(String str) {
ArrayList<String> tokenList = new ArrayList<String>();
Pattern pattern = Pattern.compile("[(\")]|\\w+.\\w+.\\w+|\\w+.\\w+|==");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
tokenList.add(matcher.group());
}
return (tokenList);
}
}
当我将字符串传递给上面的类时,我得到如下输出
我想将括号( Time.currenttime BETWEEN 800 AND 2000 ) and ( Campaign.period BETWEEN 2400 AND 600 )中的字符串拆分如下
我尝试了不同的方法,但都不起作用,请您建议我需要对正则表达式进行哪些更改才能使其正常工作
【问题讨论】:
-
.在正则表达式中具有特殊含义,因此您需要对其进行转义。我希望你只是忘了这样做,因为如果你不知道这个核心,非常基础,是 regex 的一部分,那么你需要多学习 regex。 -
@Andreas 我也试过了,但没用我是正则表达式的新手,我现在正在学习和做
标签: java regex string split tokenize