Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie reguläre Ausdrücke, um englische Sätze in PHP abzugleichen

So verwenden Sie reguläre Ausdrücke, um englische Sätze in PHP abzugleichen

WBOY
WBOYOriginal
2023-06-22 19:03:211081Durchsuche

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?)+(.|,|?|!)?$/

Als nächstes stellen wir einige fortgeschrittenere Beispiele vor. Schauen wir uns zunächst einen regulären Ausdruck an, der komplexe englische Sätze übereinstimmt:

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

Hier ist der reguläre Ausdruck /^(( [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 "匹配失败!";
}

Passen Sie englischen Text an, der Datumsangaben enthält: 🎜rrreee🎜 Das Obige ist ein Beispielcode. Ich hoffe, er kann Ihnen bei der Bewerbung helfen Formel für reguläre Ausdrücke zur Übereinstimmung mit englischen Sätzen. Die Verwendung regulärer Ausdrücke kann uns helfen, Muster in englischen Texten schnell und genau zu erkennen und so die anschließende Verarbeitung natürlicher Sprache zu erleichtern. 🎜

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn