为什么在PowerShell中使用替换功能无法从多行字符串中删除空行?

o

我正在加载HTML电子邮件,首先我删除了HTML标签,将每个标签替换 为一个空格,然后将单个空格减少了两个空格-这是可行的。

但是现在我有很多空行无法删除。我已经看到了在读取文件时删除空行的示例,但是在删除HTML标记和空格之前,我没有任何空行。

我做:

$m = [IO.File]::ReadAllText("$emailFolder\$fName")
$m = $m -replace "<((?!@).)*?>" # removes all html tag but not adr: <[email protected]>
$m = $m -replace "&nbsp;"," "
$m = $m.Replace('  ',' ').Replace('  ',' ').Replace('  ',' ')
$m = $m.Replace('`r','').Replace('`n`n','`n').Replace('`n`n','`n') # does nothing :(

我尝试了各种版本,但没有一个删除空行。任何想法,我如何实现?

除此之外,我尝试使用正则表达式乘数来连续查找空格并失败。

我做错了什么?

$m = $m.Replace(' +',' ')  # does not work
$m = $m.Replace('\s+',' ') # does not work either
英国主义者

如果我对您的理解正确,则您不想删除所有换行符,而只需删除“空”行(仅包含空格的行)。

考虑以下示例字符串:

$multiLine = "Line 1`r`nLine 2`nLine 3`r`n`r`n  `n `t `r`nLine 7`r`n"

显示时,它在屏幕上看起来像这样:

Line 1
Line 2
Line 3



Line 7

第4行实际上是空白行,只有CRLF。第5行是一个空格,后跟一个LF,第6行是一个空格,一个制表符,一个空格,然后是一个CRLF。我混合了行尾,因为HTML可能一团糟。为任何事情做好准备是一件好事!

要处理所有这些,您可以像这样进行替换:

$multiLine -creplace '(?m)^\s*\r?\n',''

这是做什么的?

  1. -creplace只是-replace(我想明确)区分大小写的版本
  2. (?m)是设置正则表达式模式的内联方法m模式代表多行,它使^$锚匹配字符串中每行的开头/结尾(而不是字符串的开头和结尾)。我认为这是解决您问题的关键。
  3. 我们^用来匹配每行的开头,然后使用\s包含制表符的来匹配0个或多个空格
  4. 我们正在匹配一个可选的回车符(对于Windows换行符),然后是一个换行符。我们不需要匹配它们的倍数,因为^它将在整个字符串中捕获它们。

结果输出

Line 1
Line 2
Line 3
Line 7

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从多行字符串与Java删除空行

来自分类Dev

使用替换功能从字符串中删除“{”字符

来自分类Dev

无法替换PowerShell中的字符串

来自分类Dev

如何从python中的多行字符串中删除特定的空行?

来自分类Dev

从字符串数组中删除空行

来自分类Dev

VBA:删除字符串中的空行

来自分类Dev

为什么不能使用printf格式替换字符串中的子字符串?

来自分类Dev

在Spyder中使用“查找”功能时无法替换所有字符串

来自分类Dev

使用多行模式在bash中替换字符串

来自分类Dev

替换多行中的字符串

来自分类Dev

使用Javascript替换功能从字符串中删除€符号

来自分类Dev

为什么我不能在Notepad ++中的搜索和替换功能中使用字符“(”或“)”?

来自分类Dev

在大括号内替换变量中的字符串时使用什么 Bash 功能?

来自分类Dev

为什么我无法删除字符串的空格?

来自分类Dev

为什么使用Replace方法不能替换字符串?

来自分类Dev

为什么在开始和结束字符串之间删除在Java中无法正常工作?

来自分类Dev

为什么strcat无法在C中使用空字符串?

来自分类Dev

为什么strcat无法在C中使用空字符串?

来自分类Dev

替换/删除字符串中的字符

来自分类Dev

Powershell替换字符串中的字符

来自分类Dev

在PowerShell中使用正则表达式从字符串中删除文本

来自分类Dev

有没有办法替换和删除多行字符串中的行

来自分类Dev

为什么我不能在C ++中使用str.erase(str.begin()+ index)删除字符串中的字符?

来自分类Dev

在Perl中使用正则表达式替换xml标记内的多行字符串

来自分类Dev

vim:在替换命令中使用搜索中的字符串

来自分类Dev

用空行替换字符串

来自分类Dev

为什么不能在字符串内插中使用_?

来自分类Dev

为什么当我在Qt字符串中使用&

来自分类Dev

如何从javascript中的字符串中删除多个空格(不能使用正则表达式替换功能)?

Related 相关文章

  1. 1

    从多行字符串与Java删除空行

  2. 2

    使用替换功能从字符串中删除“{”字符

  3. 3

    无法替换PowerShell中的字符串

  4. 4

    如何从python中的多行字符串中删除特定的空行?

  5. 5

    从字符串数组中删除空行

  6. 6

    VBA:删除字符串中的空行

  7. 7

    为什么不能使用printf格式替换字符串中的子字符串?

  8. 8

    在Spyder中使用“查找”功能时无法替换所有字符串

  9. 9

    使用多行模式在bash中替换字符串

  10. 10

    替换多行中的字符串

  11. 11

    使用Javascript替换功能从字符串中删除€符号

  12. 12

    为什么我不能在Notepad ++中的搜索和替换功能中使用字符“(”或“)”?

  13. 13

    在大括号内替换变量中的字符串时使用什么 Bash 功能?

  14. 14

    为什么我无法删除字符串的空格?

  15. 15

    为什么使用Replace方法不能替换字符串?

  16. 16

    为什么在开始和结束字符串之间删除在Java中无法正常工作?

  17. 17

    为什么strcat无法在C中使用空字符串?

  18. 18

    为什么strcat无法在C中使用空字符串?

  19. 19

    替换/删除字符串中的字符

  20. 20

    Powershell替换字符串中的字符

  21. 21

    在PowerShell中使用正则表达式从字符串中删除文本

  22. 22

    有没有办法替换和删除多行字符串中的行

  23. 23

    为什么我不能在C ++中使用str.erase(str.begin()+ index)删除字符串中的字符?

  24. 24

    在Perl中使用正则表达式替换xml标记内的多行字符串

  25. 25

    vim:在替换命令中使用搜索中的字符串

  26. 26

    用空行替换字符串

  27. 27

    为什么不能在字符串内插中使用_?

  28. 28

    为什么当我在Qt字符串中使用&

  29. 29

    如何从javascript中的字符串中删除多个空格(不能使用正则表达式替换功能)?

热门标签

归档