我的字符串:
a = "Please match spaces here <but not here>. Again match here <while ignoring these>"
使用Ruby的正则表达式,我想做类似的事情:
a.gsub /regex_pattern/, '_'
获得:
"Please_match_spaces_here_<but not here>._Again_match_here_<while ignoring these>"
答案 0 :(得分:2)
这应该这样做:
result = subject.gsub(/\s+(?![^<>]*>)/, '_')
这个正则表达式假设没有像转义尖括号那样棘手的东西。另请注意,\s
匹配换行符,TAB和其他空格字符以及空格。这可能就是你想要的,但你可以选择只匹配空格:
/ +(?![^<>]*>)/
答案 1 :(得分:0)
我认为,它有效:
a = "Please match spaces here <but not here>. Again match here <while ignoring these>"
pattern = /<(?:(?!<).)*>/
a.gsub(pattern, '')
# => "Please match spaces here . Again match here "