Notepad++中用于将空格转换为制表符的正则表达式

5

我正在尝试在Notepad++中使用正则表达式,将类似于这样的空格更改为制表符

01 fsdfsd

01 01 fsdfsd

01 01* fsdfsd

01 01 01 fsdfsd

01 01 01* fsdfsd

我如何保留数字之间的空格并仅更改最后一个空格?

谢谢。

2个回答

6

搜索:

[ ]([a-zA-Z])

(请注意,字符类前面有一个空格。)并替换为:
\t$1

如果您还有不同格式的行,或者 fsdfsd 可能包含空格,那么更适合的替代方案是:

^((?:\d+\*?)(?:[ ]\d+\*?)*)[ ]

现在替换为

$1\t

这将匹配任何空格,其前面是由可选星号分隔的数字字符串中最长的一个。

你不需要一个正向预查吗?(?=[a-zA-Z]) - Bohemian

2

您可以使用前瞻来仅匹配空格后跟非数字字符,但因为记事本不支持前瞻,所以必须采用查找字母的捕获和释放方法:

search: " +([a-zA-Z])" (don't include the quotes - there to show the space) 
replace: \t$1

你的修正方案实际上什么也没有,只是 m.buettner 很久以前发布的解决方案的复制。 - Ωmega
1
@Ωmega 差不多,除了我的代码使用 + 允许多个空格,所以在我看来稍微好一些。顺便说一下,通知你有点麻烦,因为我们没有希腊键盘。 - Bohemian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接