Regulärer Ausdruck ist ein sehr leistungsfähiges Werkzeug in PHP, das uns dabei helfen kann, verschiedene Textmuster schnell abzugleichen. In den Bereichen Englischlernen und Verarbeitung natürlicher Sprache können uns reguläre Ausdrücke dabei helfen, verschiedene englische Sätze zuzuordnen. In diesem Artikel zeigen wir Ihnen, wie Sie reguläre Ausdrücke verwenden, um englische Sätze in PHP abzugleichen, und stellen Ihnen praktischen Beispielcode zur Verfügung.
Lassen Sie uns zunächst die Grundstruktur englischer Sätze verstehen. Ein englischer Satz besteht normalerweise aus einem Subjekt, einem Prädikat und einem Objekt. „Ich habe einen Apfel gegessen“ ist beispielsweise ein einfacher englischer Satz.
In PHP verwenden wir die Funktion preg_match, um reguläre Ausdrücke abzugleichen. Diese Funktion benötigt zwei Parameter: Der erste Parameter ist der reguläre Ausdruck und der zweite Parameter ist die zu vergleichende Textzeichenfolge. Wenn die Funktion preg_match mit einem Muster übereinstimmt, ist der Rückgabewert 1, andernfalls ist der Rückgabewert 0.
Hier ist ein einfaches Beispiel dafür, wie man einen regulären Ausdruck verwendet, um einen einfachen englischen Satz abzugleichen:
$pattern = "/^([A-Z][a-z]+)s([a-z]+)s([a-z]+)$/"; // 匹配一个简单的英语句子 $string = "I ate an apple"; if (preg_match($pattern, $string)) { echo "匹配成功!"; } else { echo "匹配失败!"; }
Hier ist der reguläre Ausdruck ^([A-Z][a-z]+)s([a-z]+ )s( [a-z]+)$
entspricht einem einfachen englischen Satz. Es enthält drei Untermuster, die zur Zuordnung von Subjekt, Prädikat und Objekt des Satzes verwendet werden. Wir verwenden s
, um Leerzeichen abzugleichen. ^([A-Z][a-z]+)s([a-z]+)s([a-z]+)$
匹配一个简单的英语句子。它包含三个子模式,分别用于匹配句子的主语、谓语和宾语。我们使用 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|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?)+(.|,|?|!)?$/
$pattern = "/^[A-Z].*.$/"; $string = "Mary has a little lamb."; if (preg_match($pattern, $string)) { echo "匹配成功!"; } else { echo "匹配失败!"; }
/^(( [A-Z][a-z]+ )+s?)+( was| is|had|hassbeen| wurde nicht|war nicht 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?)+(.|,|?|!)?$/
Entspricht komplexen englischen Sätzen. Dieser reguläre Ausdruck enthält mehrere Untermuster, die verschiedenen Arten von Wörtern, Satzzeichen und Leerzeichen entsprechen. Dieser reguläre Ausdruck ist lesbar, da wir ihn in mehrere Zeilen aufgeteilt haben. Abschließend stellen wir noch einige weitere nützliche reguläre Ausdrücke vor. Das Folgende ist ein Beispielcode: Passen Sie englische Sätze an, die mit einem Großbuchstaben beginnen und mit einem Punkt enden: $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 "匹配失败!"; }
Das obige ist der detaillierte Inhalt vonSo verwenden Sie reguläre Ausdrücke, um englische Sätze in PHP abzugleichen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!