我正在尝试用一个空格替换多个空格,但是在行的开头。
示例:
___abc___def__
___ghi___jkl__
应转向
___abc_def__
___ghi_jkl__
请注意我用下划线替换空格
使用以下模式进行简单搜索:
([^\s])\s+
匹配第一行末尾的空格,直到下一行开头的空格
所以,如果我用\ 1替换,我得到以下内容:
___abc_def_ghi_jkl
这绝对不是我所期望的和正则表达式引擎,例如powergrep或视觉工作室中的那个不会那样。
答案 0 :(得分:3)
如果您只想匹配水平空格,请使用\h
:
找到:(?<=\S)\h+(?=\S)
替换为:(空格)
答案 1 :(得分:1)
对这个问题有几种可能的解释。对于它们中的每一个,替换将是单个空格字符。
如果空格是复数并且表示空格字符但不是标签,则使用
查找字符串(^ {2,})|( {2,}$)
。
如果空格是复数且应包含制表符,则使用查找字符串
(^[ \t]{2,})|([ \t]{2,}$)
。
如果有任何前导或尾随空格和制表符(一个或多个)
替换为空格然后使用(^[ \t]+)|([ \t]+$)
的查找字符串。
每个的一般形式是(^...)|(...$)
。 |
表示交替,因此前面或后面的括号表达式可以匹配。因此,找到在行的开头或结尾可以匹配的文本。 ...
根据需要匹配的内容而有所不同。指定[ \t]
仅表示空格和制表符两个字符,而\s
包含行尾字符。
答案 2 :(得分:0)
好的,所以当然要取代它:
Hey diddle diddle, \n<br/>
The Cat and the fiddle,\n
用这个:
Hey diddle diddle,\n<br/>
The Cat and the fiddle,\n
一个稍微修改过的版本的je suis charlie的回答就是这个诀窍:
(?<=\S)\h+(?=\S)|\s+$
在行尾的字符和尾随空格之间找到任何空格
感谢您的回答!