首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java拆分正则表达式模式字母和数字

Java拆分正则表达式模式字母和数字
EN

Stack Overflow用户
提问于 2014-02-27 07:17:11
回答 3查看 180关注 0票数 2

我想将这个regexp模式2 numbers-3 numbers-5 numbers and letter分成两部分。数字和"-“数组和第二个数组中的字母。

我已经想了好一阵子了。希望我能得到一些帮助。

下面是一个例子

代码语言:javascript
复制
"12-123-12345A"    <----- the string 
// I want to split it such that it can be ["12-123-12345","A"]

我试过这个

代码语言:javascript
复制
"\\d{2}-\\d{3}-\\d{5}" 
// that only give me ["", "A"]

还有这个

代码语言:javascript
复制
"(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)"
// ["12", "-", "123", "-", "12345", "A"]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-27 07:20:58

\D匹配任何非数字字符(包括-)。最好使用[^-\d],而不是排除-

代码语言:javascript
复制
String s = "12-123-12345A";
String parts[] = s.split("(?<=\\d)(?=[^-\\d])");
System.out.println(parts[0]); // 12-123-12345
System.out.println(parts[1]); // A

参见演示:http://ideone.com/emr1Kq

票数 4
EN

Stack Overflow用户

发布于 2014-02-27 07:20:58

尝尝这个

代码语言:javascript
复制
String[] a = "12-123-12345A".split("(?<=\\d)(?=\\p{Alpha})");
票数 1
EN

Stack Overflow用户

发布于 2014-02-27 08:19:39

(\d{2}-\d{3}-\d{5})(\w)

你可以在这个网站上测试它。

http://regexpal.com/

这是java代码。注双斜杠替换斜杠\->\

代码语言:javascript
复制
package com.company;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

// http://stackoverflow.com/questions/22061614
public class Main {

    public static void main(String[] args) {
      Pattern regex = Pattern.compile("(\\d{2}-\\d{3}-\\d{5})(\\w)");
      Matcher matcher = regex.matcher("12-123-12345A");
      matcher.find();
      System.out.println(matcher.group(1));
      System.out.println(matcher.group(2));
    // write your code here
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22061614

复制
相关文章

相似问题

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