Regex AS3保留空行,但在换行后删除单词前的前导空格

Regex AS3保留空行,但在换行后删除单词前的前导空格,regex,actionscript-3,Regex,Actionscript 3,实际: 预期: A new line begins Another line begins Here's another 到目前为止,我已经尝试过这样做,即在换行后删除word之前的所有前导空格: A new line begins Another line begins Here's another 但是我很难设置保留空白行的条件。一个简单的选项是只匹配并删除行开头的空格,而不删除换行: var regex:RegExp = /(\r?\n|\r)+(\s+|

实际:

预期:

 A new line begins

     Another line begins
       Here's another
到目前为止,我已经尝试过这样做,即在换行后删除word之前的所有前导空格:

A new line begins

Another line begins
Here's another

但是我很难设置保留空白行的条件。

一个简单的选项是只匹配并删除行开头的空格,而不删除换行:

var regex:RegExp = /(\r?\n|\r)+(\s+|\s+$)/g;
var newText:String = abcd.replace(regex, "\n");
Alert.show(StringUtil.trim(newText));
  • 使用
    /m
    (多行)标志,以便
    ^
    在每行的开头匹配
  • 只匹配空格和制表符,不匹配换行符
  • 只需移除它们
  • 这也将从仅空间线中删除空间。如果这是一个问题,您可以使用
    ^[\t]+(?=\s)

工作示例:

谢谢!是的,我只想保留空格行。当我尝试此/^[\t]+(?!\s)+/gm时,它还删除了仅空格的行(到新文本)。@santanukarr-在您的评论中,您有一个额外的
+
,这可能是错误的原因-在Regex101中,它显示:“前面的标记不可量化”。如果您在/gm之前指向+符号,我已将其删除到/^[\t]+(?!\s)/gm,但它仍然只删除空格行。@Santanukarr-我找不到在线的ActionScript编译器或解释器来测试它,但它正在运行。@Santanukarr-只是确保-您在测试中使用了
StringUtil.trim
。这也将删除字符串开头和结尾的空行,但不会删除中间的空行。
var regex:RegExp = /^[ \t]+/gm;
var newText:String = abcd.replace(regex, "");