我有一个字符串,我需要获取键-值对的数组(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+)" );