Ruby Regex识别报价中的管道

时间:2014-10-15 17:05:58

标签: ruby regex

我想要一个正则表达式来识别双引号内的管道字符。

我正在使用

\".+\|.+\" 

正确匹配' 1 | Some" quote |文本" | 4' 并且正确地不符合' 1 | Some"引用"文本| 4'

然而,它也匹配' 1 | Some"引用" text | 4 | 5 | 6 |更多"引用"文| 9' 因为有两组引号 - 它看到最外面的引号和它们之间的管道。

在这种情况下,如何将正则表达式更改为不匹配?

更新:原来我需要它在引号内的多个管道上匹配。我一直在用:

/\"([^|]+)\|([^|]+)\"/

适用于引号内的1个管道,例如" 1 | Some" quote |文字" | 4",但现在我需要它也匹配像" 1 | Some" quote |文字|与|管" | 4"

任何想法???

1 个答案:

答案 0 :(得分:1)

您希望匹配除.+之外的任何字符,而不是使用与任何字符匹配的|。要做到这一点,你想要[^|]+。根据你所写的内容,这应该是你想要的。