tjm*_*wan 7 ruby regex whitespace
我一直在尝试构建一个与尾随空格匹配的ruby正则表达式 - 但不是缩进占位符 - 所以我可以将它们格式化.
我有这个/\b[\t ]+$/
,它正在努力,直到我意识到只有当线路结束时它才有效[a-zA-Z]
.:-(所以我把它演变成了这个/(?!^[\t ]+)[\t ]+$/
似乎它变得越来越好,但它仍然无法正常工作.我花了好几个小时试图让它工作无济于事.请帮忙.
这里有一些文本测试,因此很容易投入到Rubular中,但是缩进行被剥离所以它需要一些空格和/或制表符.一旦第3和第4行有空格,它就不应该在第3-5,7,9行上匹配.
some test test
some test test
some other test (text)
some other test (text)
likely here{ dfdf }
likely here{ dfdf }
and this ;
and this ;
Run Code Online (Sandbox Code Playgroud)
或者,是否有更简单/更优雅的方式来做到这一点?
mck*_*eed 12
如果你使用1.9,你可以使用look-behind:
/(?<=\S)[\t ]+$/
Run Code Online (Sandbox Code Playgroud)
但遗憾的是,旧版本的ruby不支持它,所以你必须处理捕获的角色:
str.gsub(/(\S)[\t ]+$/) { $1 }
Run Code Online (Sandbox Code Playgroud)