我想得到第一个id和第二个数字之前的名字词。我想在中这样做。
例如汽车维修或汽车电子及配件
# Name Id Child nodes
1 Car Care 15718271 Browse
2 Car Electronics & Accessories 2230642011 Browse
3 Exterior Accessories 15857511 Browse我试着用.split(“")1分割行,但是它用空格分割单词。在短语中只给出一个词,例如Car
发布于 2022-05-19 18:37:54
试试这个:^\d*[a-zA-Z &+-]*(\d*)[a-zA-Z ]*在匹配中'(\d*)‘你会找到你想要的号码。如果数字前后的字符串具有特殊字符,则将它们添加到appropiate []节中。解释:'^‘表示从开头开始,'\d*’接受第一个数字一次或多次,again &+-使用这些字符的字符串,(\d*)指定希望的数字,again再次在数字之后取一个字符串。使用regex编辑器进行测试。
发布于 2022-05-19 21:34:52
您可以使用
(?m)^\d+\s+(.*?)\s+\d{6,}\s见regex演示。详细信息
(?m) -多行选项^ -行的开始\d+ -一个或多个数字\s+ -一个或多个空白空间(.*?) -第1组:除行中断字符以外的零或多个字符尽可能少\s+ -一个或多个空白空间\d{6,} -六位或更多位数\s -一个空格。String s = "# Name Id Child nodes\n1 Car Care 15718271 Browse \n2 Car Electronics & Accessories 2230642011 Browse\n3 Exterior Accessories 15857511 Browse";
Pattern pattern = Pattern.compile("(?m)^\\d+\\s+(.*?)\\s+\\d{6,}\\s");
Matcher matcher = pattern.matcher(s);
while (matcher.find()){
System.out.println(matcher.group(1));
}输出:
Car Care
Car Electronics & Accessories
Exterior Accessorieshttps://stackoverflow.com/questions/72309476
复制相似问题