2016-10-02 6 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)インラインモディファイアを使用してそれを変更します(正規表現の後に修飾子がない正規表現エンジンを想定しています)。

第2に、空白は他の文字と同様に扱われます。テキストに単語間に2つのスペースが含まれている場合、1つのスペースしか使用しないと、正規表現は一致しません。

最後に、あなたはおそらくlazy quantifierを使用する必要があります。

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

は動作するはずです。あなたは正規表現がの町で始まり、その後、競売

で終わるだろうと言うなら

+0

ありがとう、説明を含む。私は明らかに空白については考えていませんでした。 – user61629

1

は:

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

をここに/私はそれJavaScriptで大文字と小文字を区別します。 ここのキャプチャグループ1にはあなたの街の名前が含まれています

+0

'\ s'はすでに文字クラスです。その周りに角括弧は必要ありません。 – tripleee

+0

@トリプルーエは、あなたが望むように:) –

関連する問題