正则表达式删除字符之间的空格,但在开头忽略空格

时间:2018-08-13 06:55:09

标签: regex dreamweaver

我有一些要用搜索/替换正则表达式清除的HTML代码。在很多情况下,我想用正则表达式删除的单词之间有多个空格,但我希望它忽略每一行开头的HTML缩进。 表达式\ h {2,4}删除2到4之间的所有空格,但是如何才能忽略开头的缩进呢? 这是一个示例HTML代码:

textField.markedTextStyle = @{NSBackgroundColorAttributeName: [UIColor redColor]}

谢谢

2 个答案:

答案 0 :(得分:4)

看看这是否适合您。如果其中有两个以上且不在行的开头,它将替换任何空格。

(?<!^)\h\K\h+

“无”替换

Demo

说明:

(?<!^) # not a previous begin of line
\h     # one horizontal space
\K     # ignore previous match
\h+    # one or more horizontal spaces

可选方法

([^\n]\h)\h+替换为$1

Demo

甚至:([^\n][^\S\r\n])[^\S\r\n]+(如果不支持\h)替换为$1

Demo

答案 1 :(得分:0)

https://regex101.com/r/GOxPpS/1

<td>.*?(\h{2,4}).*<\/td>

您可以将<td>标记字符串添加到正则表达式中。这样,搜索将始终位于标签内。

完整的查询说明可在提供的链接中找到:

  

<td>->从字面上匹配字符(区分大小写)

     

.*?->匹配任何字符(行终止符除外)

     

*?->量词-匹配零次和无限制次数,尽可能少地次数,根据需要扩展(延迟)

     

\h{2,4}->匹配任何水平空白字符。匹配2至4次,并尽可能多地匹配,并根据需要返回(贪婪)