首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取两个数字( java regex )之间的单词

获取两个数字( java regex )之间的单词
EN

Stack Overflow用户
提问于 2022-05-19 18:28:16
回答 2查看 40关注 0票数 -2

我想得到第一个id和第二个数字之前的名字词。我想在中这样做。

例如汽车维修或汽车电子及配件

代码语言:javascript
复制
#   Name    Id  Child nodes
1   Car Care    15718271    Browse 

2   Car Electronics & Accessories   2230642011  Browse

3   Exterior Accessories    15857511    Browse

我试着用.split(“")1分割行,但是它用空格分割单词。在短语中只给出一个词,例如Car

EN

回答 2

Stack Overflow用户

发布于 2022-05-19 18:37:54

试试这个:^\d*[a-zA-Z &+-]*(\d*)[a-zA-Z ]*在匹配中'(\d*)‘你会找到你想要的号码。如果数字前后的字符串具有特殊字符,则将它们添加到appropiate []节中。解释:'^‘表示从开头开始,'\d*’接受第一个数字一次或多次,again &+-使用这些字符的字符串,(\d*)指定希望的数字,again再次在数字之后取一个字符串。使用regex编辑器进行测试。

票数 0
EN

Stack Overflow用户

发布于 2022-05-19 21:34:52

您可以使用

代码语言:javascript
复制
(?m)^\d+\s+(.*?)\s+\d{6,}\s

regex演示。详细信息

  • (?m) -多行选项
  • ^ -行的开始
  • \d+ -一个或多个数字
  • \s+ -一个或多个空白空间
  • (.*?) -第1组:除行中断字符以外的零或多个字符尽可能少
  • \s+ -一个或多个空白空间
  • \d{6,} -六位或更多位数
  • \s -一个空格。

Java演示

代码语言:javascript
复制
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)); 
}

输出:

代码语言:javascript
复制
Car Care
Car Electronics & Accessories
Exterior Accessories
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72309476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档