正则表达式(Java):如何用“|”替换“||” |“反复

前端之家收集整理的这篇文章主要介绍了正则表达式(Java):如何用“|”替换“||” |“反复前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有一串管道分隔的数据:

123456|abcd|||65464|hgfhgf

如何替换||的任何出现与:| |?

所以最终看起来像这样:

123456|abcd| | |65464|hgfhgf

我尝试使用简单的Java表达式:

delimString.replaceAll("\\\|\\\|","| |");

但这只取代了第一次出现:

123456|abcd| ||65464|hgfhgf

所以我需要一些东西让它重复(我认为贪婪).

解决方法

String resultString = subjectString.replaceAll("\\|(?=\\|)","| ");

正则表达式解释没有Java的双反斜杠:

\|   # Match a literal |
(?=  # only if it's followed by
 \|  # another literal |.
)    # End of lookahead assertion

你甚至可以狂野地用空格字符替换两个管道之间的空白区域:

String resultString = subjectString.replaceAll("(?<=\\|)(?=\\|)"," ");

猜你在找的正则表达式相关文章