回答
也许尝试使用空字符串替换[0-9]+;
上的正则表达式。如果只有一个数字,那么不需要+。在单个数字的情况下,查找分号,删除它和前面的字符也可能更容易。
您的正则表达式正在工作,但是在分割了像[[233,345,656]之类的保存数据之后,我怎么能避免这个额外的逗号 – 2013-05-08 12:52:52
@vishwa:smitec建议你用一个空字符串进行替换,而不是分割 – 2013-05-08 13:23:40
replaceAll("\d;" ,"")
如果你的号码的位数不固定在一个可以改变的,你可以使用\d+
这会是这样的:
;([^,;]+)$1
这意味着至少一个分号起始字符,然后是一个或多个既不是分号也不是逗号的字符。最后,它只将分号右侧的部分标记为期望的结果。
我不知道这是Java的语法,具体。我更多的是一个.NET人。但你可以从那里工作。
你可以拆分你的数组字符串,来获得夫妇和比;找到数字。
PHP:
$string= "[1;233,2;345,3;656]";
$temp=explode(",", $string); //to get couples like 1;233
print_r($temp);
$result=array();
for($i=0; $i<count($temp);$i++){
$temp1=explode(";", $temp[$i]);
array_push($result,$temp1[1]);//take second value 233
}
print_r($result);
输出:$ couple_array:Array ([0] => [1;233 [1] => 2;345 [2] => 3;656])
输出:$阵列:Array ([0] => 233 [1] => 345 [2] => 656])
的Java:
String str = "[1;233,2;345,3;656]";
String[] temp = str.split(",");//to get couples like 1;233
int size=temp.length;
String[] result=new String[size];
for(int i =0; i < size ; i++){
String[] temp1=str.split(";");//take second value 233
result[i]=temp1[1];
}
如果数组是用整数键入的,则正则表达式超出范围。 您应该考虑创建一个整数值高于99(3位整数)的新数组。
但是,如果你的数组包含字符串,这里有你想要的正则表达式:
Pattern yourPattern = Pattern.compile("(?<=\\D)\\d{1,2}(?=\\D)");
// this will find 1 or 2 digit numbers preceded and followed by anything but a digit
编辑:对正则表达式的解决方案,我认为我们是在谈论一个数组的字符串表示。因此检查非数字字符。 相反,如果你遍历字符串数组,那么你很可能Integer.valueOf("12")
和比较,如果为int值99。也就是说,如果你是积极的弦总是代表一个整数(或以其他方式处理NumberFormatException异常)。
- 1. 正则表达式匹配
- 2. 正则表达式匹配
- 3. 正则表达式匹配
- 4. 正则表达式匹配
- 5. 正则表达式匹配
- 6. 匹配正则表达式{
- 7. 正则表达式匹配%
- 8. 正则表达式匹配“|”
- 9. 正则表达式匹配
- 10. 正则表达式 - 匹配
- 11. 正则表达式匹配
- 12. 正则表达式匹配
- 13. 正则表达式匹配
- 14. 正则表达式匹配
- 15. 正则表达式匹配
- 16. .NET匹配正则表达式匹配
- 17. 从正则表达式表达式匹配匹配 - 错误
- 18. 正则表达式(匹配函数),javascript
- 19. 正则表达式:匹配已知数
- 20. perl正则表达式数字匹配
- 21. 正则表达式匹配数不是
- 22. 正则表达式匹配计数
- 23. C#正则表达式匹配数组
- 24. 删除其他正则表达式匹配的正则表达式匹配
- 25. C#正则表达式不匹配,但正则表达式测试者匹配
- 26. bash,正则表达式,返回匹配的正则表达式
- 27. 正则表达式正则表达式匹配字符串
- 28. Ruby正则表达式与正则表达式匹配
- 29. 正则表达式:不匹配的子正则表达式
- 30. 使用正则表达式的Javascript正则表达式匹配
你想用分号分裂,然后得到仅是一个逗号左边的数字,是吗? – Renan 2013-05-08 12:41:34
@Renan:用分号分割,然后在分号[233,345,656]之后得到数字,在分号之前丢弃数据 – 2013-05-08 12:43:49