如何使用正则表达式作为stringtokenizer的分隔符

时间:2013-09-17 14:14:43

标签: java regex

我想检索|2~ and |

之间的字符串

使这项工作的正则表达式是什么?

据说我有 | 2~21381030213jafjs231 | adfafafasdfas 我正在使用

StringTokenizer test = new StringTokenizer(string, delim);

我试过了     StringTokenizer(string,“// | / 2 /〜%s / |”)//不起作用。

但它不起作用。

你能详细说明正则表达式是如何工作的(比如正则表达式如何工作)?或者是开始研究的好链接。

谢谢

2 个答案:

答案 0 :(得分:3)

如果您需要正则表达式,.*~(.*)\|会这样做。这是一个Regex 101 to prove it.现在,为了解释正则表达式,它非常简单:

  • .*告诉引擎匹配所有字符;
  • ~然后告诉引擎在找到~;
  • 时停止
  • (.*)然后告诉引擎匹配所有字符并将它们分组为匹配;
  • \|然后告诉引擎匹配将停止分组的|

但要学习正则表达式,have a look at this site,它是网上最好的之一。

答案 1 :(得分:3)

StringTokenizer不支持正则表达式。您需要使用Pattern& Matcher个班级

String  s = "|2~21381030213jafjs231|adfafafasdfas";
Matcher m = Pattern.compile("\\|\\d~([^|]+)\\|").matcher(s);
if ( m.find() ) {
  System.out.println(m.group(1));
}