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 "匹配失败!"; }
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 "匹配失败!"; }
这里的正则表达式 /^(([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| 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 "匹配失败!"; }
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!