文字列に部分文字列が含まれているかどうかは特定の位置のみで確認できますか?文字列に単語が含まれていても、特定の位置にのみ含まれているかどうかを確認しますか?
例文字列:
あなたの好きな色は何ですか?私の私は、文字列は、私は通常これを行う特定の単語に含まれるかどうかを確認したい場合は、[好きな]色は
青です:私は必要なもの
var
S: string;
begin
S := 'What is your favorite color? my [favorite] color is blue';
if (Pos('favorite', S) > 0) then
begin
//
end;
end;
が単語の好きかどうかを判断することですがが文字列に存在していますが、[]記号の中に表示されている場合は無視されますが、上記のコードサンプルでは明らかにしていません。
我々はブール関数にコードを置くのであれば、いくつかのサンプルの結果は次のようになります。
TRUE:あなたの好きな色は何ですか?私の[私の好きな]の色は青です
TRUE:あなたの好きな色は何ですか?私の[何とか何とか]の色は青です
FALSE:あなたの何とか何とか色は何ですか?ワードのお気に入りは、それが彼らの内側にあるかどうか、[]記号の外で発見されたので、私の[いくつかのお気に入りの]色は青
最初の2つの標本が上記真です。
お気に入りの単語があっても、[]記号の中にのみ表示されるので、3番目のサンプルはfalseです。シンボルの外に存在するかどうかを確認する必要があります。
したがって、単語(この例ではお気に入り)が文字列に表示されるかどうかを判断する機能が必要ですが、単語が[]記号で囲まれている場合は無視されます。
アイデア:1)文字列を '\ s'に分割し、4番目の要素を確認します。 2) 'お気に入り 'を確認します(単語の周囲のスペースに注意してください)。 3)文字列を疑問符「?」で分割し、「お気に入り」を保持しているかどうかを確認します。 –
'['、検索が見つかりました ']'、 '[]'を含む中間を削除し、お気に入りを検索します。 –
正規表現(XEに含まれるユニットを含む)を ''\ b' + wordtofind + '\ b''の正規表現で使用してください。あなたが気を付けなければならないのは、 'それはあなたのお気に入りですか? 'です。'?'はそれが一致しないでしょう。 –