如何使用正则匹配|符号前连续三个空格中的中间空格
匹配指定位置的单个空格
需求
要匹配**|符号前连续三个空格中的中间空格**,待处理文本如下:
--- --- | | | | --- ---
当前问题
用正则(?<!\|)\s{2}会匹配|前的两个连续空格(标记为x),但只需要中间的单个空格:
--- --- | xx| xx| xx| --- ---
解决方案
使用带前后断言的正则表达式:
(?<= )\s(?= \|)
正则说明
(?<= ):反向肯定断言,保证匹配的空格前有一个空格,锁定三个连续空格的中间位置\s:精准匹配目标空格(?= \|):正向肯定断言,保证匹配的空格后是一个空格加|符号,确保位置在|之前
匹配后标记为x的结果:
--- --- | x | x | x | --- ---
内容的提问来源于stack exchange,提问作者radoslav chonkov
相关产品推荐
相关产品推荐

