如何在Ruby中使正则表达式的一部分可选?

前端之家收集整理的这篇文章主要介绍了如何在Ruby中使正则表达式的一部分可选?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
要匹配以下内容
On Mar 3,2011 11:05 AM,"mr person" 
wrote:

我有以下正则表达式:

/(On.* (?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{1,2},[12]\d{3}.* at \d{1,2}:\d{1,2} (?:AM|PM),.*wrote:)/m

有没有办法让at在可选?所以,如果它很好,如果没有,它仍然匹配?

解决方法

当然.把它放在括号中,在它后面加一个问号.包括其中一个空格(否则如果“at”丢失,你将试图匹配两个空格.)(at)? (或者像其他人建议的那样,(?:at)?以避免被捕获).

猜你在找的Ruby相关文章