我想写一个正则表达式,它产生的内容不在括号或括号中的字符串。括号总是一年,括号中可以包含任何普通字符,大写和小写。我正想它通过查找括号和括号,然后按[^ \正则表达式]逃脱它红宝石正则表达式,一切,但括号和括号内是什么
这里的字符串(这是正确的?):
s = 'Some words (1999) [THINGS]
和正则表达式:
/[^(\(\d{4}\))|\[.*\]]/
,但是这包括里面的人物在括号中看到(http://rubular.com/r/bbpcnnGgCI)
一切正常,直到加入[^ \正则表达式]
例如,该工程获得(1999年):
>> puts s.match(/\(\d{4}\)/)
(1999)
和什么括号:
>> puts s.match(/\[.*\]/)
[THINGS]
,但把它们放在一起使用|为“或”:
>> puts s.match(/\(\d{4}\)|\[.*\]/)
(1999)
...它只是匹配括号及其内容。
这是怎么回事?
我在这里做错了什么?
@duckyfizz完美!和一个很好的资源。它与替换错误,但与gsub工作得很好。 – rick 2011-06-08 03:18:43
对不起,我的意思是gsub。出于某种原因已经替换了我的头。 – 2011-06-08 03:21:44
即时通讯将不得不在这一点上工作,因为我也有没有括号或括号的字符串,并且当它在这些字符串上运行时,它会将其擦除(nil)。有任何想法吗? – rick 2011-06-08 03:52:56