java - 正则表达式:在 Java 8 中使用正则表达式
问题描述
我想操作一个字符串,我的字符串是:
String string = "dfwx--05-dfpixc3"
我希望我的输出是这样的:
dfwx--05
dfpixc3
所以分隔符是-
而不是--
此外,我可以使用 Matcher 类 Pattern 类来解决这个问题吗?
解决方案
您可以将此正则表达式\b-\b
与Word Boundaries一起使用,如下所示:
\b
表示一个锚点,例如插入符号(它类似于$
and^
)匹配位置,其中一侧是单词字符(like\w
)而另一侧不是单词字符(例如,它可能是字符串的开头或空格字符)。
String[] split = string.split("\\b-\\b");
因为我的字符串是可变的,后面总是有一个数字——
另一种解决方案可能是通过使用积极的后视,像这样(?<=\d)-
:
String[] split = string.split("(?<=\\d)-");
输出
[dfwx--05, dfpixc3]
推荐阅读
- c++ - 从不同文件中使用 sfinae 的正确方法是什么?
- reactjs - ReactJS 中的继承
- c# - 将行设置为 TableFooterView
- javascript - 如何链接 JSON 文件,以便对其进行解析并用于创建数组列表
- openstreetmap - 使用正确的印度地图打开街道地图服务器
- amazon-web-services - AWS SAM:java8/gradle 应用程序在部署时因 ClassNotFound 而失败(但在本地运行良好)
- flowtype - 流不相交联合检查适用于文字字符串,但不适用于常量
- swiftui - SwiftUI - 带列表的段控制
- c# - 当枚举不可为空且没有任何空选项时,检查它是否为空
- php - Laravel 错误尝试在自动加载之前使用日志