我有一个字符串,其中包含数字和单词,我想在java中使用正则表达式。
String s="S.No.DistrictMarketPrice 1 Agra Achhnera NIL 2 Agra Agra 1450 3 Agra Fatehabad NIL 4 Agra Fatehpur Sikri 8765 5 Agra Jagner NIL 6 Agra Jarar NIL 7 Agra Khairagarh NIL 8 Agra Shamshabad NIL 9 Aligarh Atrauli 1298 10 Aligarh Chharra NIL";
我想打破这个字符串。我希望新行中的每个字符串都应该从精确的serino开始
如何获得此输出
S.No .District Market Price
1 Agra Achhnera NIL
2 Agra Agra 1450
3 Agra Fatehabad NIL
4 Agra Fatehpur Sikri 8765
答案 0 :(得分:8)
您可以用新行+数字替换每个号码:
String multiline = s.replaceAll("(\\d+)", "\n$1");
(\\d+)
捕获数字$1
指的是捕获的数字答案 1 :(得分:2)
将一个或多个数字的任何实例替换为系统行分隔符,后跟匹配的数字。
因此:
String s = "S.No.DistrictMarketPrice 1 Agra Achhnera NIL 2 Agra Agra NIL 3 Agra Fatehabad NIL 4 Agra Fatehpur Sikri NIL 5 Agra Jagner NIL 6 Agra Jarar NIL 7 Agra Khairagarh NIL 8 Agra Shamshabad NIL 9 Aligarh Atrauli NIL 10 Aligarh Chharra NIL";
System.out.println(
s.replaceAll("\\d+", System.getProperty("line.separator") + "$0")
);
<强>输出强>
S.No.DistrictMarketPrice
1 Agra Achhnera NIL
2 Agra Agra NIL
3 Agra Fatehabad NIL
4 Agra Fatehpur Sikri NIL
5 Agra Jagner NIL
6 Agra Jarar NIL
7 Agra Khairagarh NIL
8 Agra Shamshabad NIL
9 Aligarh Atrauli NIL
10 Aligarh Chharra NIL
答案 2 :(得分:1)
使用这个:
String []splits = s.split("(?<!\\d)(?=\\d+)");
splits包含每个索引的行:
S.No.DistrictMarketPrice
1 Agra Achhnera NIL
2 Agra Agra NIL
3 Agra Fatehabad NIL
4 Agra Fatehpur Sikri NIL
5 Agra Jagner NIL
6 Agra Jarar NIL
7 Agra Khairagarh NIL
8 Agra Shamshabad NIL
9 Aligarh Atrauli NIL
10 Aligarh Chharra NIL