Pattern regex to find tab java

时光怂恿深爱的人放手 提交于 2021-02-05 08:14:16

问题


I have a statement as follows:

String n =
\ul\insrsid14762702 Symptom}{\insrsid14762702\ul\insrsid14762702 Acid}{\insrsid14762702\ul\insrsid14762702 Nonacid}{\insrsid14762702\ul\insrsid14762702 All}{\insrsid14762702 
 Reg\tab 100%\tab 100%\tab 100%
 Stg pain\tab 100%\tab 83%\tab 100%
 F pain\tab 72%\tab 0%\tab 67%

I would like to see how many tabs there are but I always get zero returned for the size of the arrayList I thought I was adding to. My code:

Pattern patternTabs = Pattern.compile("\\tab",Pattern.DOTALL);
Matcher matcherTabs = patternTabs.matcher(n);

//Add the values between each tab.
ArrayList<String> colValue = new ArrayList<String>();

int count = 0;
while (matcherTabs.find())
    colValue.add(matcher.group());
count++;

System.out.println("ffffffffffffff"+colValue.size());

I have tried \\\\tab \tab tab all other permutations with brackets but no joy.


回答1:


A literal backslash in a regex requires 4 backslashes in the String literal (2 for regex, doubled again for java), so your regex should be:

"\\\\tab"

But your other "problem" is too much code; just use split():

String[] colValues = n.split("\\\\tab");


来源:https://stackoverflow.com/questions/36679850/pattern-regex-to-find-tab-java

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!