java - Java Regex:用相等数量的另一个字符替换两个特定字符之间的字符
问题描述
用相同数量的“-”字符替换起始字符“+”和结束字符“+”之间的所有字符。
我的具体情况如下:
输入:+-+-+-+
输出:+-----+
String s = = "+-+-+-+";
s = s.replaceAll("-\\+-","---")
这是行不通的。如何在 Java 中实现输出?提前致谢。
解决方案
您可以使用环顾断言来使用此替换:
String repl = s.replaceAll("(?<=-)\\+(?=-)", "-");
//=> +-----+
(?<=-)\\+(?=-)
将匹配 a+
如果它被-
两边包围。由于我们使用的是lookbehind和lookahead,因此我们不使用字符,这些只是断言。
推荐阅读
- java - java文件名引用编译错误
- c++ - 如何将 hdf5 添加到 Qt 项目?
- python - 只有我的一些物种被转换为 NCBI ID,使用 biopython 将物种转换为 ID
- nativescript - NativeScript 手势状态名称对应编号
- javascript - 如何使tinymce输入只读
- javascript - 你怎么不会从 math.floor 得到重复的数字?
- c# - 将 JSON 发送到 C# WCF 服务会导致:请求实体太大
- sql - SSIS在运行时使用参数部署包执行
- javascript - 我可以在新对象返回之前从它获取数据吗?
- c# - Appium - 通过 xpath c# 查找第二个元素