我有一些要用搜索/替换正则表达式清除的HTML代码。在很多情况下,我想用正则表达式删除的单词之间有多个空格,但我希望它忽略每一行开头的HTML缩进。 表达式\ h {2,4}删除2到4之间的所有空格,但是如何才能忽略开头的缩进呢? 这是一个示例HTML代码:
textField.markedTextStyle = @{NSBackgroundColorAttributeName: [UIColor redColor]}
谢谢
答案 0 :(得分:4)
看看这是否适合您。如果其中有两个以上且不在行的开头,它将替换任何空格。
(?<!^)\h\K\h+
“无”替换
说明:
(?<!^) # not a previous begin of line
\h # one horizontal space
\K # ignore previous match
\h+ # one or more horizontal spaces
可选方法
([^\n]\h)\h+
替换为$1
甚至:([^\n][^\S\r\n])[^\S\r\n]+
(如果不支持\h
)替换为$1
答案 1 :(得分:0)
https://regex101.com/r/GOxPpS/1
<td>.*?(\h{2,4}).*<\/td>
您可以将<td>
标记字符串添加到正则表达式中。这样,搜索将始终位于标签内。
完整的查询说明可在提供的链接中找到:
<td>
->从字面上匹配字符(区分大小写)
.*?
->匹配任何字符(行终止符除外)
*?
->量词-匹配零次和无限制次数,尽可能少地次数,根据需要扩展(延迟)
\h{2,4}
->匹配任何水平空白字符。匹配2至4次,并尽可能多地匹配,并根据需要返回(贪婪)