我想打破一个字符串:
String s = "xyz213123kop234430099kpf4532";
到令牌中,每个令牌以字母开头,以数字结尾。所以上面的字符串可以分解为3个标记:
xyz213123
kop234430099
kpf4532
此字符串s
可能非常大,但模式将保持不变,即每个标记将以3个字母开头并以数字结尾。
如何分割它们?
答案 0 :(得分: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);
}
对于未来这个:
答案 1 :(得分: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
答案 2 :(得分:1)
你可以从这样的正则表达式开始:(\ w +?\ d +) http://regexr.com?36utt