在Ruby中,我希望在结果中使用单个组的两个表达式中的正则表达式匹配。我想要以下结果:
regex = /you tell me/
regex.match(%|My name is "Peter"|)[1]
=> "Peter"
regex.match(%|My name is 'Peter'|)[1]
=> "Peter"
请注意,我希望第一组仅引用Peter
而没有引号,我希望在任何一种情况下都只有一个匹配的组。举个例子,这将匹配第一个案例(仅):
/^My name is "([^"]*)"$/
我想要类似的东西。我碰巧将它用于黄瓜测试。
答案 0 :(得分:3)
This regex可能适合您
['"](\w+)['"]
它恰好匹配一个组。但它也允许不平衡的引号,如'Peter"
如果你只想匹配平衡报价,那么你就不能用一个组来做(我很害怕)。
无论如何,here's my take:
('|")(\w+)\1
它匹配两组,“Peter”在第二组。
答案 1 :(得分:2)
http://rubular.com/r/C78X0wwGej
(?=['"](\w+)['"])(?:"\1"|'\1')