首页 > 解决方案 > 正则表达式:在 Java 8 中使用正则表达式

问题描述

我想操作一个字符串,我的字符串是:

 String string = "dfwx--05-dfpixc3"

我希望我的输出是这样的:

dfwx--05
dfpixc3

所以分隔符是-而不是--

此外,我可以使用 Matcher 类 Pattern 类来解决这个问题吗?

标签: javaregexstring

解决方案


您可以将此正则表达式\b-\bWord Boundaries一起使用,如下所示:

\b表示一个锚点,例如插入符号(它类似于$and ^)匹配位置,其中一侧是单词字符(like \w)而另一侧不是单词字符(例如,它可能是字符串的开头或空格字符)。

String[] split = string.split("\\b-\\b");

因为我的字符串是可变的,后面总是有一个数字——

另一种解决方案可能是通过使用积极的后视,像这样(?<=\d)-

String[] split = string.split("(?<=\\d)-");

输出

[dfwx--05, dfpixc3]

推荐阅读