如果这个问题已经有答案了,我很抱歉,但是我已经搜索过了,找不到答案。我正在尝试编写一个正则表达式,它将匹配所有前导和尾随空格,开放和关闭括号之间的空格以及单词之间的空格,但不会匹配单词之间的空格。以下是我解析数据时使用的字符串格式示例:
[Header]
[ SomeSpace]
[ Some1 More Space 15 ]
没有前导和尾随空格,括号之间没有空格,只有一个单词。
一些前导和尾随空格,在开括号和尾随空格之间有空格。
一些前导空格,字母和数字之间有空格,在开括号和闭括号之间有空格,以及尾随空格。
我想到的最接近的单个正则表达式是:
/[^\[\]a-zA-Z\d]/
但我似乎无法仅取消匹配单词和数字之间的空格...
我目前使用的 Ruby 代码是:
line.gsub!(/^\s*/, "")
line.gsub!(/\[/, "")
line.gsub!(/\]/, "")
s = line.gsub!(/^\s*|\s*$/, "")
s = "[" + s + "]\n"
显然,这不太好看...
如果能帮忙将其优化为一个简洁的gsub操作,将不胜感激。
谢谢!
Lee
sed
不支持非贪婪量词 - 我会看看是否能想出替代方案 :) - Jon Gauthier