我有一个字符串,我需要获取键-值对的数组(2-dim)。

“匹配”是指两个单词之间有一个-> ,前后带有空格->

例如输入字符串:

skip_me key1-> value1 key2-> value2 skip_me_2 key3-> value3 skip_me_3 skip_me->也

结果应为数组:
键1,值1
key2,value2
key3,value3

这是我的代码:

Pattern p = Pattern.compile( "\\s*([^(->)]+)->([^(->)]+)\\s*" );
Matcher m = p.matcher("skip_me key1->value1 key2->value2 skip_me_2 key3->value3 skip_me_3");
while( m.find() ) {
  System.out.println( "Key:" + m.group(1) + "Value:" + m.group(2) );
}

我的正则表达式是错误的。
请协助。

最佳答案

匹配单词字符(字母,数字和下划线_)...尽可能多

Pattern.compile( "(\w+)->(\w+)" );

10-01 05:18
查看更多