处理前导空格的正则表达式(记事本++)
Regex to handle leading spaces (notepad++)
我在记事本++打开的文件中有一行
0 <? 0.00 - (multi) Salt
注意:行首有 2 个前导 space。
在 只有一个 中使用正则表达式替换,我必须将上面的行更改为:
0,0.00,multi,Salt
我试过的是:替换
( \d*) <\? \d.\d\d - \(multi\) *
和
,,multi,
它工作正常。唯一的问题是它在 notepad++
的每一行添加了一个前导 space
如何修改我的正则表达式以不在每行的开头添加前导 space?
注意L我不能使用"Trim Leading space in notepad"的选项。
有人可以帮我解决这个问题吗?
提前致谢!
注意:我的文件有更多行,如
0 <? 0.00 - (multi) Salt
1 <? 0.00 - (multi) Vinegar
2 <? 0.00 - (multi) Salt and Vinegar
3 <? 0.00 - (multi) BBQ Sauce
4 <? 0.00 - (multi) Chilli Sauce
5 <? 0.00 - (multi) Hawaiian Sauce
6 <? 0.00 - (multi) Brown Sauce
7 <? 0.00 - (multi) Garlic Mayo and Herb Sauce
8 <? 0.00 - (multi) Mayo
9 <? 0.00 - (multi) Salad
10 <? 0.00 - (multi) Lettuce
11 <? 0.00 - (multi) Cabbage
" ( \d*) <\? \d.\d\d - \(multi\) *"
您的正则表达式在第一组中有一个 space:( \d*)
。去掉它就没事了:(\d*)
。但是,(无关)你还没有捕获你的第二组,也没有 Salt
。
要在 Notepad++ 中使用基于正则表达式的替换,请打开查找和替换底部的 正则表达式 单选按钮 window !(见下面我的设置)
这是一个对你有用的正则表达式:
^\h{2}(\d*)\h*<\?\h*(\d\.\d{2})\h*-\h*\(multi\)\h*
替换为,,multi,
\h
是一个水平空格(排除换行符)。两次出现可以与 {2}
限制量词匹配(无需重复子模式)。
查看设置:
注意:如果前导空格超过 1 个,请将 \h{2}
更改为 \h{2,}
:
^\h{2,}(\d*)\h*<\?\h*(\d\.\d{2})\h*-\h*\(multi\)\h*
^\h+(\d+)\h*<\?\h*([\d.]+)\W+(\w+)\W+([\w\h]+?)\h*$
看到了here.
要在我的编辑器中捕获四个组中的所有内容
查找内容:\s\s(\d+).+(\d[.]\d+).+\((\w+).*?(\w+\b)
替换为:,,,
见下面所附照片..
我在记事本++打开的文件中有一行
0 <? 0.00 - (multi) Salt
注意:行首有 2 个前导 space。
在 只有一个 中使用正则表达式替换,我必须将上面的行更改为:
0,0.00,multi,Salt
我试过的是:替换
( \d*) <\? \d.\d\d - \(multi\) *
和
,,multi,
它工作正常。唯一的问题是它在 notepad++
的每一行添加了一个前导 space如何修改我的正则表达式以不在每行的开头添加前导 space?
注意L我不能使用"Trim Leading space in notepad"的选项。
有人可以帮我解决这个问题吗?
提前致谢!
注意:我的文件有更多行,如
0 <? 0.00 - (multi) Salt
1 <? 0.00 - (multi) Vinegar
2 <? 0.00 - (multi) Salt and Vinegar
3 <? 0.00 - (multi) BBQ Sauce
4 <? 0.00 - (multi) Chilli Sauce
5 <? 0.00 - (multi) Hawaiian Sauce
6 <? 0.00 - (multi) Brown Sauce
7 <? 0.00 - (multi) Garlic Mayo and Herb Sauce
8 <? 0.00 - (multi) Mayo
9 <? 0.00 - (multi) Salad
10 <? 0.00 - (multi) Lettuce
11 <? 0.00 - (multi) Cabbage
" ( \d*) <\? \d.\d\d - \(multi\) *"
您的正则表达式在第一组中有一个 space:( \d*)
。去掉它就没事了:(\d*)
。但是,(无关)你还没有捕获你的第二组,也没有 Salt
。
要在 Notepad++ 中使用基于正则表达式的替换,请打开查找和替换底部的 正则表达式 单选按钮 window !(见下面我的设置)
这是一个对你有用的正则表达式:
^\h{2}(\d*)\h*<\?\h*(\d\.\d{2})\h*-\h*\(multi\)\h*
替换为,,multi,
\h
是一个水平空格(排除换行符)。两次出现可以与 {2}
限制量词匹配(无需重复子模式)。
查看设置:
注意:如果前导空格超过 1 个,请将 \h{2}
更改为 \h{2,}
:
^\h{2,}(\d*)\h*<\?\h*(\d\.\d{2})\h*-\h*\(multi\)\h*
^\h+(\d+)\h*<\?\h*([\d.]+)\W+(\w+)\W+([\w\h]+?)\h*$
看到了here.
要在我的编辑器中捕获四个组中的所有内容
查找内容:\s\s(\d+).+(\d[.]\d+).+\((\w+).*?(\w+\b)
替换为:,,,
见下面所附照片..