我有一些输入文本,其中包含多个空行,我只想在将文本放入文本字段之前仅删除没有文本的行。
示例:
Hello, how are you?
// empty line
// empty line
With you?
我想要的是:
Hello, how are you?
With you?
如何删除空线?
您想做的就是修改您要传递的文本,然后再将其传递给文本。
DART具有一种替代方法,该方法应该能够解决问题并掌握正则是:
看起来像:
myinputstring.replaceAll(new RegExp(r'(?:[t ]*(?:r?n|r))+'), 'n');
,尽管您可能必须修改正则表达式。正则表达式正在寻找两个或多个新线的序列(同时处理 r, n和 r n(,然后用单个newline替换(同样,您可能想将其更改为 r n或 r(。
您可以做的另一种方法是分开和加入。
myinputstring
.split(new RegExp(r'(?:r?n|r)'))
.where((s) => s.trim().length != 0)
.join('n');
这次我们只是在任何新线路上分开,然后检查一下介于两者之间的修剪(摆脱空格(是否为空的零件,以及它们是否忽略它们,然后将字符串重新加载。
请注意,出于绩效原因,构造正则对象,将其保存在其他地方(即const(,然后将其保存在替换中可能是个好主意。我并不是100%确定DART在DART中的性能特征,因此可以很好。只是我在Java的背景说这始终是推荐的方法。