Comment utiliser des expressions régulières pour faire correspondre des phrases anglaises en PHP

WBOY
Libérer: 2023-06-22 19:08:02
original
1082 Les gens l'ont consulté

Les expressions régulières sont un outil très puissant en PHP, qui peut nous aider à faire correspondre rapidement divers modèles de texte. Dans les domaines de l’apprentissage de l’anglais et du traitement du langage naturel, les expressions régulières peuvent nous aider à faire correspondre diverses phrases anglaises. Dans cet article, nous allons vous montrer comment utiliser des expressions régulières pour faire correspondre des phrases anglaises en PHP et vous fournir des exemples de code pratiques.

Tout d’abord, comprenons la structure de base des phrases anglaises. Une phrase anglaise se compose généralement d'un sujet, d'un prédicat et d'un objet. Par exemple, « J’ai mangé une pomme » est une simple phrase anglaise.

En PHP, nous utilisons la fonction preg_match pour faire correspondre les expressions régulières. Cette fonction prend deux paramètres, le premier paramètre est l'expression régulière et le deuxième paramètre est la chaîne de texte à faire correspondre. Lorsque la fonction preg_match correspond à un modèle, la valeur de retour est 1, sinon la valeur de retour est 0.

Voici un exemple de base de la façon d'utiliser une expression régulière pour faire correspondre une simple phrase anglaise :

$pattern = "/^([A-Z][a-z]+)s([a-z]+)s([a-z]+)$/"; // 匹配一个简单的英语句子
$string = "I ate an apple";
if (preg_match($pattern, $string)) {
    echo "匹配成功!";
} else {
    echo "匹配失败!";
}
Copier après la connexion

Ici, l'expression régulière ^([A-Z][a-z]+)s([a-z]+ )s( [a-z]+)$ correspond à une phrase simple en anglais. Il contient trois sous-modèles, qui sont utilisés pour faire correspondre le sujet, le prédicat et l'objet de la phrase. Nous utilisons des s pour faire correspondre les espaces. ^([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 "匹配失败!";
}
Copier après la connexion

这里的正则表达式 /^(([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?)+(.|,|?|!)?$/

Ensuite, nous présentons quelques exemples plus avancés. Tout d’abord, regardons une expression régulière qui correspond à des phrases anglaises complexes :

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

Ici, l’expression régulière /^(( [A-Z][a-z]+ )+s?)+( was| is|had|hassbeen| ont été|seront|sont|suis|n'était pas|n'est pas|n'a pas|n'a pas|ne sera pas|n'est pas|n'a pas|n'avait pas|ne serait pas|n'était pas| t )s(( [A-Z][a-z]+ )+s?)+(( est|wass|shassbeens|shavesbeens|sares|swillsbes|swasn'ts|sisn'ts| rasé'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?)+(.|,|?|!)?$/ Correspond à des phrases anglaises complexes. Cette expression régulière contient plusieurs sous-modèles qui correspondent à différents types de mots, de ponctuations et d'espaces. Cette expression régulière est lisible car nous la divisons en plusieurs lignes.

Enfin, introduisons quelques autres expressions régulières utiles. Voici un exemple de code :

Faites correspondre les phrases en anglais commençant par une majuscule et se terminant par un point :

$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 "匹配失败!";
}
Copier après la connexion
Faites correspondre le texte en anglais contenant des dates : 🎜rrreee🎜 Ce qui précède est un exemple de code, j'espère qu'il pourra vous aider à mieux postuler formule d'expressions régulières pour correspondre aux phrases anglaises. L'utilisation d'expressions régulières peut nous aider à identifier rapidement et avec précision des modèles dans un texte anglais, facilitant ainsi le traitement ultérieur du langage naturel. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal