84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
/:(?!\d)/
ES6
> str="姓名:王尼玛 性别:男 播音时间:每天10:20PM"; > str.split(" ").forEach((s)=>console.log(s.split(/:(?!\d)/))) [ '姓名', '王尼玛' ] [ '性别', '男' ] [ '播音时间', '每天10:20PM' ] undefined >
正则都差不多,就用js演示一下~
java
import java.util.Arrays; public class HelloWorld{ public static void main(String[] args) { String[] sarr = "姓名:王尼玛 性别:男 播音时间:每天10:20PM".split(" "); String[][] Arr=new String[sarr.length][]; for (int i=0;i<sarr.length;i++) { Arr[i]=sarr[i].split(":(?!\\d)"); sarr[i]=Arrays.toString(sarr[i].split(":(?!\\d)")); } System.out.println(Arrays.toString(sarr)); } } //[[姓名, 王尼玛], [性别, 男], [播音时间, 每天10:20PM]]
java写程序很繁琐,叠床架屋的~
用python就轻松多了~
r'([^:]+):(?!\d)([^ ]+)'
>>> import re >>> s="姓 名:王尼玛 性别:男 播音时间:每天10:20PM"; >>> p=re.compile(r'([^:]+):(?!\d)([^ ]+)') >>> p.findall(s) [('姓 名', '王尼玛'), (' 性别', '男'), (' 播音时间', '每天10:20PM')]
String str = "姓名:王尼玛 性别:男 播音时间:每天10:20PM"; List<String> list = new ArrayList<>(); for (String s : str.split(" ")) { int i = s.indexOf(":"); list.add(s.substring(0, i)); list.add(s.substring(i + 1)); }
/:(?!\d)/
ES6
正则都差不多,就用js演示一下~
java
java写程序很繁琐,叠床架屋的~
用python就轻松多了~
r'([^:]+):(?!\d)([^ ]+)'