我有以下字符串
Month: March 2011
Month: January 2012
Month: December 2011
我想编写一个正则表达式,只选择2011年的月份名称(即“三月”)。这意味着选择字符串“月:”和年份“2011”之间的所有内容。 我制作的正则表达式是
^(Month:)[A-Za-z0-9]+(2011)$
但它似乎不起作用。怎么了??? 结果应为“三月”和“十二月”。 谢谢!
答案 0 :(得分:1)
答案 1 :(得分:1)
它不匹配,因为您没有考虑月份和年份之间的空白区域。
您可以在考虑空间后捕获月份组:
^(?:Month: )([A-Za-z]+)(?: 2011)$
或者您可以使用前瞻/后视组合:
(?<=^Month: )[A-Za-z]+(?= 2011$)
答案 2 :(得分:1)
此表达式有效(向后看/向前看)(?<=Month\:\s)(.+?)(?=\s2011)
。
编辑:
只使用非捕获组,这可以工作:(?:Month\:\s)(.+?)(?:\s2011)