如何在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)?以避免被捕获).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...