PHP で正規表現を使用して英語の文章と一致させる方法

WBOY
リリース: 2023-06-22 19:08:02
オリジナル
1082 人が閲覧しました

正規表現は PHP の非常に強力なツールであり、さまざまなテキスト パターンを迅速に照合するのに役立ちます。英語学習や自然言語処理の分野では、正規表現はさまざまな英語の文章を照合するのに役立ちます。この記事では、PHP で正規表現を使用して英語の文章を照合する方法と、いくつかの実践的なコード例を紹介します。

まずは英語の文章の基本的な構造を理解しましょう。英語の文は通常、主語、述語、目的語で構成されます。たとえば、「私はリンゴを食べました」は簡単な英語の文です。

PHP では、preg_match 関数を使用して正規表現を照合します。この関数は 2 つのパラメータを受け取ります。最初のパラメータは正規表現で、2 番目のパラメータは一致するテキスト文字列です。 preg_match 関数がパターンに一致する場合、戻り値は 1 であり、それ以外の場合、戻り値は 0 です。

これは、正規表現を使用して簡単な英語の文と一致させる方法を示す基本的な例です:

$pattern = "/^([A-Z][a-z]+)s([a-z]+)s([a-z]+)$/"; // 匹配一个简单的英语句子
$string = "I ate an apple";
if (preg_match($pattern, $string)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}
ログイン後にコピー

ここでの正規表現^([A-Z][a-z] )s ([a-z] )s([a-z] )$ は簡単な英語の文に一致します。これには、文の主語、述語、目的語を照合するために使用される 3 つのサブパターンが含まれています。スペースと一致させるには s を使用します。

次に、より高度な例をいくつか紹介します。まず、複雑な英語の文に一致する正規表現を見てみましょう。

$pattern = "/^(([A-Z][a-z]+)+s?)+(was|is|had|hassbeen|havesbeen|willsbe|are|am|wasn't|isn't|haven't|hasn't|won'tsbe|aren't|ain't|hadn't|wouldn'tsbe|won't|weren't)s(([A-Z][a-z]+)+s?)+((is|wass|shassbeens|shavesbeens|sares|swillsbes|swasn'ts|sisn'ts|shaven'ts|shasn'ts|swon'tsbes|saren'ts|sain'ts|shadn'ts|swouldn'tsbes|swon'ts|sweren'ts)+)+((an?s|sthes|s[d]*s)?([A-Z][a-z]+)+s?)+(.|,|?|!)?$/"; // 匹配复杂的英语句子
$string = "She is a beautiful girl, who has been living in Paris for three years.";
if (preg_match($pattern, $string)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}
ログイン後にコピー

ここでの正規表現/^(( [A-Z][a-z] ) s?) ( was |is|had|hassbeen |したことがある|するつもり|いる|いる|しなかった|いない|していない|していない|しない|いない|いない|いなかった|だった|しない|いなかった't )s(( [A-Z][a-z] ) s?) (( は|だった|シャスビーンズ|剃った|サレス|スウィルズベス|スワスではない|シスではない|剃ったではない|シャスではない|剃ったではない| saren'ts|sain'ts|shadn'ts|swon'tsbes|swon'ts|sweren'ts) ) (( an?s|sthes|s[d]*s )?( [A-Z][a-z] ) s ?) (.|,|?|!)?$/ 複雑な英語の文に一致します。この正規表現には、さまざまな種類の単語、句読点、スペースに一致する複数のサブパターンが含まれています。この正規表現は複数の行に分割されているため、読みやすくなっています。

最後に、その他の便利な正規表現をいくつか紹介します。以下にサンプル コードを示します。

大文字で始まりピリオドで終わる英語の文に一致します。

$pattern = "/^[A-Z].*.$/";
$string = "Mary has a little lamb.";
if (preg_match($pattern, $string)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}
ログイン後にコピー

日付を含む英語のテキストに一致します。

$pattern = "/(0?[1-9]|[12][0-9]|3[01])[-/.]([0]?[1-9]|[1][012])[-/.]d{4}/";
$string = "Today is 2021/12/31";
if (preg_match($pattern, $string)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}
ログイン後にコピー

上記は次のとおりです。いくつかの例 コード、正規表現を英語の文章と一致させるためにより適切に適用するのに役立つことを願っています。正規表現を使用すると、英語のテキスト内のパターンを迅速かつ正確に識別できるため、その後の自然言語処理が容易になります。

以上がPHP で正規表現を使用して英語の文章と一致させる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート