0

我的任务是为 C# 编写代码荧光笔。一切都很好,但我希望优化缩进。所以,我有一个看起来像的正则表达式/(\t|[ ]{4})/g,所以我用它替换了制表符或 4 个空格字符,<span style="margin-left: 2em;" />它看起来不错,但它会创建很多不必要的跨度。我想使用类似的东西/^[ ]{x}/g并替换<span style='margin-left: "+(0.5*x)+"em;' />为每行只有一个具有适当边距的跨度。str.match()不起作用,因为它搜索所有文档,而不是每行。

4

1 回答 1

2

如果您的正则表达式有g标志,您可以一遍又一遍地执行它,从字符串中获取所有匹配项,包括匹配项的长度:

var re = /^(\t|[ ]{4})/g;
var match;
while((match = re.exec(text)) {
    // use match.index and match[0].length
}
于 2013-07-03T04:03:41.497 回答