2017-02-27 10 views
-3

スペース文字を処理するときに、オプションの?数値化文字を解析するのに問題がある場合は、(.+)の後にオプションのテキストを正しく解析できません。正しいグループを取得する

Examples:ユーザーは「what」、「what is/are」、「what is/are」を知ることができます。私は間違った正規表現(?:i)?(?:want to know |love to know)?what (.+)(?: is| are)?を思いついた。以下のキャプチャでは、希望のサンプル結果(big housebig houses)が必要です。

  • 正しいキャプチャ:

    what big house 
    
  • 誤ったキャプチャ:

    what big house is 
    
    love to know what big houses are 
    
    i want to know what big house is 
    
+1

を見ますまたは '大きな家'なぜあなたはあなたの正規表現の中で「知っていることを知っている」「知りたい」「知っていますか」「何か」「何か」を探していますか? –

+0

あなたの要求とあなたが書いた正規表現はちょっと一致しません。あなたの正規表現が何をしているのかを説明してください。特になぜ知っていることを知りたいのですが、それはマッチではないと言っていますか? –

+0

@AbdulHameed私の正規表現では、例のリンクのように 'big house is 'と' big houses'というグループ化された値が間違っています。 – MiP

答えて

1

です:あなたは `大きなhouse`をしたい場合は

(?m)(?<=what\s).*?(?=\s(?:is|are|$)) 

demo/explanation

+0

あなたの正規表現は最初のケース「どのような大きな家」と一致しませんでした。 – MiP

+0

私が望む望ましい結果は、例では「大きな家」と「大きな家」です。最初のバージョンでは値が正しく取得されません。 – MiP

+0

@MiPああ..私の悪い、私は誤解しました。今すぐ更新された回答を確認してください。それは正常に動作するはずです。 – m87

0

あなたが書いた:私は望ましい結果を必要とする

:大家と大きな家。

は次にあなたが後にしている正規表現は、次の正規表現が仕事を行う必要がありますbig house[s]?

+0

私は、例の中で望ましい結果を意味しました。 – MiP

関連する問題