如何删除using (StreamReader sr = new StreamReader(fileName, Encoding.Default))
{
string full = sr.ReadToEnd();
}
809
之前的前一个空格
这是我的样本:
echo
我可以使用sed删除3或4个空格:
$ echo ' 809 23/Dec/2008:19:20'
809 23/Dec/2008:19:20
^^^3 spaces here preceding the 809
但我想要的是我的sed命令可以处理大于3的任何事情
...4 spaces here
$ echo ' 809 23/Dec/2008:19:20' | sed 's/^.\{3\,4\}//'
809 23/Dec/2008:19:20
0 spaces here preceding the 809
何我在sed中编写正则表达式以删除809之前的3个或更多空格?
答案 0 :(得分:6)
如果您想在开始时删除3个或更多空格
sed 's/^[[:blank:]]\{3,\}//'
<强>详情
^
- 输入开始[[:blank:]]\{3,\}
- 连续发生3次或更多次水平空格。如果您需要在特定值之前删除3个以上的空格,比如809
,只需将该值添加到正则表达式和替换模式中:
sed 's/^[[:blank:]]\{3,\}809/809/'
或使用捕获组和占位符:
sed 's/^[[:blank:]]\{3,\}\(809\)/\1/'
答案 1 :(得分:3)
xargs
让你无需考虑正则表达式。
$ echo ' 809 23/Dec/2008:19:20' | xargs
809 23/Dec/2008:19:20
xargs
这或多或少是非传统的伎俩。此工具旨在用于构建具有长参数列表的命令。从手册页:
xargs从标准输入读取项目,由空格分隔(可以用双引号或单引号保护或 反斜杠)或换行符,并执行命令
但是,在发送到后续命令之前,将修剪空白区域作为预处理的一部分。在这种情况下,没有后续命令,因此xargs只是按原样发送参数,以修剪的空格为模,输出到标准输出,这正是你所要求的。
答案 2 :(得分:1)
您可以使用{minimum,maximum}指定要使用的字符数。 如果您保留最大空白,则它将匹配至少包含最少字符数的任何内容。因此选择三个空格将是“\ {3,\}”。祝你好运!
答案 3 :(得分:0)
不要逃避逗号:
BOOT-INF