如果在括号内的任何位置出现YYYY年,则删除括号内的所有文本。
这是我已经尝试过的:
a = []
while line = DATA.gets
a = a.push(line.split(/\(.+\d{4}.+\)/))
end
a.each {|x|
p x}
__END__
Start text (Name, 2019) and more text (reg bracket - keep) and more text (2018 references - remove).
我希望此文本返回:“开始文本和更多文本(reg括号-保留)和更多文本。”
答案 0 :(得分:1)
如果4位数字可以位于任意位置,并且没有进一步的左括号和右括号,那么获得该匹配项的一种方法是:
匹配开头括号,然后匹配0+次而不是开头或结尾括号。然后匹配4位数字,再匹配0+次而不是左括号或右括号。
\([^()]*\d{4}[^()]*\)