我想检索|2~ and |
使这项工作的正则表达式是什么?
据说我有 | 2~21381030213jafjs231 | adfafafasdfas 我正在使用
StringTokenizer test = new StringTokenizer(string, delim);
我试过了 StringTokenizer(string,“// | / 2 /〜%s / |”)//不起作用。
但它不起作用。
你能详细说明正则表达式是如何工作的(比如正则表达式如何工作)?或者是开始研究的好链接。
谢谢
答案 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));
}