使用保留的分隔符分割字符串
处理由一组唯一分隔符分隔的多行字符串时,分割字符串可能会很困难同时还保留分隔符本身。标准 String.split 方法仅根据指定的分隔符分隔字符串,并丢弃分隔符。
使用 Lookahead 和 Lookbehind
Java 开发工具包 (JDK)提供了使用lookahead和lookbehind的解决方案,它们是正则表达式的功能,允许您匹配和捕获字符而不将它们包含在最终结果中result.
以下是使用前向和后向的示例:
String input = "(Text1)(DelimiterA)(Text2)(DelimiterC)(Text3)(DelimiterB)(Text4)";
String[] splitWithDelimiter = input.split("((?模式:
- (?
- (?=;) 匹配分号之前的空字符(lookahead).
- ((?
输出:
[Text1, ;, DelimiterA, ;, Text2, ;, DelimiterC, ;, Text3, ;, DelimiterB, ;, Text4]
此结果将分隔符与文本一起保留,满足分割字符串时保持分隔符完整的要求。
提高可读性
正则表达式有时难以阅读和理解。为了增强可读性,您可以创建一个具有表示正则表达式模式的描述性名称的变量。例如:
static final String WITH_DELIMITER = "((?通过使用占位符和Java的String.format,可以让正则表达式更加直观,更容易解释。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3