1

我想打破这样的字符串:

String s = "xyz213123kop234430099kpf4532";

成标记,其中每个标记以字母开头并以数字结尾。所以上面的字符串可以分解为 3 个标记:

xyz213123
kop234430099
kpf4532

该字符串s可能非常大,但模式将保持不变,即每个标记将以 3 个字母开头并以数字结尾。

我该如何拆分它们?

4

3 回答 3

2

试试这个:

\w+?\d+

Java匹配器

Pattern pattern = Pattern.compile("\\w+?\\d+"); //compiles the pattern we want to use
Matcher matcher = pattern.matcher("xyz213123kop234430099kpf4532"); //we create the matcher on certain string using our pattern

while(matcher.find()) //while the matcher can find the next match
{
    System.out.println(matcher.group()); //print it
}

然后你可以使用Regex.Matches C#:

foreach(Match m in Regex.Matches("xyz213123kop234430099kpf4532", @"\w+?\d+"))
{
    Console.WriteLine(m.Value);
}

对于未来,这个:

正则表达式

于 2013-10-29T07:27:17.510 回答
2

像这样做,

String s = "xyz213123kop234430099kpf4532";

    Pattern p = Pattern.compile("\\w+?\\d+");
    Matcher match = p.matcher(s);
    while(match.find()){
        System.out.println(match.group());  
    }

输出

xyz213123
kop234430099
kpf4532
于 2013-10-29T07:34:05.503 回答
1

您可以从这样的正则表达式开始: (\w+?\d+) http://regexr.com?36utt

于 2013-10-29T07:29:09.510 回答