2

文から特定の単語を選択するために正規表現を使用したい均一な構造の文があります。たとえば、文の構造は次のようになります。

["Take the"] + [train] + ["bound train to"] + [stop]

引用符で囲まれた単語はハードコードされ、引用符のない単語は可変です。たとえば、その文構造に基づいて、次の文が適用されます。

- Take the L bound train to 1st street.
- Take the 1 bound train to neverland. 

これと一致し、[train] と [stop] を解析できるようにする正規表現パターンを考え出すのに助けが必要です。私の正規表現 kunfu は弱いので、助けが必要です。

4

3 に答える 3

3

非常に単純な正規表現:最初のキャプチャ グループと2 番目のキャプチャ グループに'^Take the (.*) bound train to (.*)\.$'格納されます。[train][stop]

^               # Match the start of the string
Take the        # Match the literal string
(.*)            # Capture the [train]
bound train to  # Match the literal string
(.*)            # Capture the [stop]
\.              # Match the fullstop 
$               # Match the end of string
于 2012-11-19T15:43:20.213 に答える
0
preg_match("/^Take\sthe\s([\d\w]+)\sbound\strain\sto\s([\w\d]+)$/", $string, $hits);

このようなものが動作するはずです

于 2012-11-19T15:44:23.573 に答える
0

私の理解では、文の構造と書式設定のやり直しが必要な何らかのテンプレートを作成したいと考えているようです。

次のように表示されます。

Take the %start% bound train to %stop%

これは、必要な特定の単語に簡単に置き換えることができます。

/%stop%/Union Station
/%stop%/East Station

これがあなたの質問を回避したことは知っていますが、将来維持するのが困難になる可能性のあるすべての正規表現をキャッチするよりも優れたソリューションになるでしょう。

于 2012-11-19T16:09:26.923 に答える