首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中使用正则表达式拆分字符串模式

在Java中使用正则表达式拆分字符串模式
EN

Stack Overflow用户
提问于 2013-07-04 16:07:52
回答 1查看 167关注 0票数 0

使用正则表达式,我必须拆分字符串模式并扩展它们。

例如:

代码语言:javascript
复制
String Pattern = "rue Richard2" -----> in 2 string 
Substring1 = "rue Richard" , Substring2 = "2"

但是对于更复杂的字符串模式,比如"rue-Richard 2-5",我必须拆分和扩展:

代码语言:javascript
复制
Substring1 = "rue-Richard " , Substring2 = "2"
Substring1 = "rue-Richard " , Substring2 = "3"
Substring1 = "rue-Richard " , Substring2 = "4"
Substring1 = "rue-Richard " , Substring2 = "5"

但是对于另一个更复杂的字符串模式,比如"rue-Richard 2,5,7,11",我必须拆分和扩展:

代码语言:javascript
复制
Substring1 = "rue-Richard." , Substring2 = "2"
Substring1 = "rue-Richard." , Substring2 = "5"
Substring1 = "rue-Richard." , Substring2 = "7"
Substring1 = "rue-Richard." , Substring2 = "11"
EN

回答 1

Stack Overflow用户

发布于 2013-07-04 16:16:20

这里的正则表达式不会有帮助,因为您有两个任务要做:

将non-digits与digits;

  • analyze
  • 分开。

一个简单的解决方案是使用Guava's CharMatcher

代码语言:javascript
复制
// DIGIT matches all unicode digits, we don't want that
private static final CharMatcher DIGITS = CharMatcher.DIGIT
    .and(CharMatcher.ASCII);

// find first digit index
final int index = DIGITS.indexIn(input);
input.substring(0, index); // part without the digits
input.substring(index); // part with digits

然后你“只”需要分析数字部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17465025

复制
相关文章

相似问题

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