正则表达式:匹配除了任意分隔符之外的内容

时间:2016-09-14 05:14:32

标签: ruby regex

我的字符串:

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>"

2 个答案:

答案 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 "