如何获取管道内的字符串内容?
|qwe|asd|zxc|
我怎样才能获得
qwe asd zxc
我试过这个
"\\|{1,}(\\w*)\\|{1,}"
它似乎无法正常工作
我也试过这个
"\\|{1,}[\\w*]\\|{1,}"
它只返回qwe但
答案 0 :(得分:1)
如果String line="|qwe|asd|zxc|";
则为
使用string[] fields = line.split("\\|");
得到你所有结果的数组..
答案 1 :(得分:1)
这不需要正则表达式,但如果你坚持使用正则表达式:
Pattern p = Pattern.compile("\\|?(\\w+)\\|");
Matcher m = p.matcher("|qwe|asd|zxc|");
while (m.find()) {
System.out.println(m.group(1));
}
/* outputs:
qwe
asd
zxc
*/
为什么你的正则表达式不起作用
/\|{1,}(\w*)\|{1,}/
与/\|(\w*)\|/
类似,它与管道之间的字匹配。
现在,您的示例字符串中的第一个匹配项为|qwe|
。
然后继续在asd|zxc|
找到匹配项;根据模式,它会跳过asd
并仅匹配|zxc|
。
您可以通过使前面的管道可选来解决此问题。