2016-10-02 85 views
0

我想用正则表达式来捕获2个字符串之间的字符串。我没有遇到正则表达式。我想在下面的字符串来捕捉城市名称:基本正则表达式捕获

On April 6, 2016, the Town of Woodstock auctioned 
± 
14.00 

我尝试了最基本的捕获尝试:

town of (.*) auctioned 

,我能想到的,但我没有得到任何比赛在所有。链接如下。我究竟做错了什么?

see here

+7

近5k代表,你不能给[mcve]?来吧。 – jonrsharpe

回答

4

首先,正则表达式是区分大小写的默认。使用(?i)内嵌修饰符来改变它(假设正则表达式引擎在正则表达式之后不希望修饰符)。

其次,空白与其他任何字符一样。如果文本在单词之间包含两个空格,那么如果它只使用一个空格,则正则表达式将不匹配。

最后,你应该使用lazy quantifier

(?i)town\s+of\s+(.*?)\s+auctioned 

应该工作。

+0

谢谢,包括解释。我没有想到明显的空白 – user61629

1

如果说,正则表达式将先从镇,并与拍卖

然后结束:这里

/town\s+of\s+(.*?)\s+auctioned/ig 

/I使得案件在JavaScript不敏感。 这里捕获组1包含你的城镇名称

+0

'\ s'已经是一个字符类了,你不需要围绕它的方括号。 – tripleee

+0

@tripleee完成,因为你想:) –