Maison  >  Article  >  développement back-end  >  Expression régulière PHP : comment extraire des sous-chaînes avant et après des caractères spécifiques d'une chaîne

Expression régulière PHP : comment extraire des sous-chaînes avant et après des caractères spécifiques d'une chaîne

PHPz
PHPzoriginal
2023-06-23 08:41:102165parcourir

L'expression régulière est un puissant outil de traitement de texte qui peut nous aider à extraire le contenu dont nous avons besoin à partir d'un ensemble de texte. L'utilisation d'expressions régulières en PHP est également très pratique. Cet article explique comment extraire les sous-chaînes avant et après des caractères spécifiques d'une chaîne.

  1. Utilisez la fonction preg_match

En PHP, la fonction preg_match peut être utilisée pour extraire très simplement le contenu dont nous avons besoin de la chaîne. Le premier paramètre de cette fonction est une expression régulière, le deuxième paramètre est la chaîne à rechercher et le troisième paramètre est un tableau qui peut être utilisé pour stocker les résultats correspondants.

Par exemple, si nous voulons extraire la sous-chaîne "Hello" de la chaîne "Hello world", nous pouvons utiliser le code suivant :

$pattern = '/w+/';
$str = 'Hello world';
preg_match($pattern, $str, $matches);
echo $matches[0];  // 输出 "Hello"

Dans le code ci-dessus, nous utilisons une expression régulière w+, ce qui signifie faire correspondre une ou plusieurs lettres, chiffres ou traits de soulignement. Par conséquent, la fonction preg_match peut faire correspondre la sous-chaîne « Hello » et la stocker dans le premier élément du tableau $matches. w+,它表示匹配一个或多个字母、数字或下划线。因此,preg_match 函数可以匹配到 "Hello" 这个子字符串,并将它存储在 $matches 数组的第一个元素中。

同样的,如果我们想要从字符串 "I am a boy" 中提取出 "boy" 这个子字符串,可以使用以下代码:

$pattern = '/w+/';
$str = 'I am a boy';
preg_match($pattern, $str, $matches);
echo $matches[2];  // 输出 "boy"

在上面的代码中,我们使用了一个正则表达式 w+,它表示匹配一个单词。由于要匹配第三个单词,所以 $matches 数组中存储的是第三个匹配项,也就是 "boy"。

  1. 使用 preg_match_all 函数

如果要从字符串中提取多个子字符串,可以使用 preg_match_all 函数。该函数与 preg_match 函数的用法类似,但是它可以匹配所有符合条件的子字符串,并将它们存储在 $matches 数组中。

例如,如果我们想要从字符串 "I have a cat and a dog" 中提取出所有的动物名称,可以使用以下代码:

$pattern = '/[a-z]+/';
$str = 'I have a cat and a dog';
preg_match_all($pattern, $str, $matches);
print_r($matches[0]);  // 输出 Array("cat", "and", "dog")

在上面的代码中,我们使用了一个正则表达式 [a-z]+

De même, si nous voulons extraire la sous-chaîne "garçon" de la chaîne "Je suis un garçon", nous pouvons utiliser le code suivant :
    $pattern = '/cats/';
    $replacement = 'dogs';
    $str = 'I love cats, but I hate dogs';
    echo preg_replace($pattern, $replacement, $str);  // 输出 "I love dogs, but I hate dogs"
  1. In Dans ce qui précède code, nous utilisons une expression régulière w+ , qui signifie correspondre à un mot. Puisque nous voulons faire correspondre le troisième mot, le tableau $matches stocke la troisième correspondance, qui est « garçon ».
    1. Utilisez la fonction preg_match_all

      Si vous souhaitez extraire plusieurs sous-chaînes d'une chaîne, vous pouvez utiliser la fonction preg_match_all. Cette fonction est similaire à la fonction preg_match, mais elle correspond à toutes les sous-chaînes correspondantes et les stocke dans le tableau $matches.

      Par exemple, si on veut extraire tous les noms d'animaux de la chaîne "J'ai un chat et un chien", on peut utiliser le code suivant :

      rrreee

      ci-dessus Dans le code, nous utilisons une expression régulière [a-z]+ , qui signifie faire correspondre un mot qui commence par une lettre et se termine par une lettre. Puisque toutes les sous-chaînes qui remplissent les conditions doivent correspondre, toutes les sous-chaînes correspondantes sont stockées dans le tableau $matches.

      #🎜🎜##🎜🎜#Utiliser la fonction preg_replace #🎜🎜##🎜🎜##🎜🎜#En plus d'extraire des sous-chaînes de chaînes, nous pouvons également utiliser la fonction preg_replace pour remplacer certaines sous-chaînes dans la chaîne. Remplacez certaines sous-chaînes par d'autres chaînes. Le premier paramètre de cette fonction est l'expression régulière à remplacer, le deuxième paramètre est la chaîne remplacée, le troisième paramètre est la chaîne à traiter et le quatrième paramètre est le nombre de remplacements (peut être omis, la valeur par défaut est -1 , qui remplace toutes les correspondances). #🎜🎜##🎜🎜#Par exemple, si on veut remplacer "chats" par "chiens" dans la chaîne "J'aime les chats, mais je déteste les chiens", on peut utiliser le code suivant : #🎜🎜#rrreee# 🎜 🎜#Dans le code ci-dessus, nous utilisons une expression régulière "cats" pour correspondre à la sous-chaîne à remplacer, en la remplaçant par "dogs". #🎜🎜##🎜🎜#Pour résumer, les expressions régulières peuvent être utilisées pour extraire facilement des sous-chaînes avant et après des caractères spécifiques d'une chaîne. Cela peut être facilement réalisé en PHP en utilisant les fonctions preg_match, preg_match_all et preg_replace. #🎜🎜#

    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!

    Déclaration:
    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