2 votes

Correspond à toutes les expressions rationnelles commençant par des caractères mais ne se terminant pas par des caractères.

J'ai un tableau de mots je veux les faire correspondre à ceux qui commencent par '___' mais certains mots ayant aussi '___' à la fin . mais je ne veux pas correspondre à ces mots

voici ma liste de mots

___apis
___db_tables
___groups
___inbox_messages
___sent_messages
___todo
___users
___users_groups
____4underscorestarting
sinan
sssssssssss
test_______dfg
testttttt
tet____
tttttttttt
uuuuuuuu
vvvvvvvvvvvv
wwwwwwww
zzzzzzzzzz

je veux que seuls ces mots correspondent

___apis
___db_tables
___groups
___inbox_messages
___sent_messages
___todo
___users
___users_groups

je ne veux pas correspondre à ces mots

tet____
test_______dfg
____4underscorestarting

Voici à quoi ça ressemble quand j'essaie

enter image description here

2voto

RomanPerekhrest Points 54365

La solution utilisant preg_grep fonction :

// $arr is your initial array of words
$matched = preg_grep("/^_{3}[^_].*/", $arr);
print_r($matched);

Le résultat :

Array
(
    [0] => ___apis
    [1] => ___db_tables
    [2] => ___groups
    [3] => ___inbox_messages
    [4] => ___sent_messages
    [5] => ___todo
    [6] => ___users
    [7] => ___users_groups
)

Mise à jour : Pour obtenir le en face de utilise l'un des éléments suivants :

  • motif regex : /^(?!_{3})\w*/
  • définir le troisième argument de preg_grep fonction comme PREG_GREP_INVERT (... preg_grep("/^_{3}[^_].*/", $arr, PREG_GREP_INVERT) )

http://php.net/manual/en/function.preg-grep.php

1voto

vks Points 35744
^___[a-z].*

cela devrait le faire pour vous. Voir la démo.

https://regex101.com/r/hHRg8d/1

0voto

ssubra Points 1
    ^_{3}.*[^(_{3})]$ 
  1. Commence(^) par 3 '_' _{3}
  2. Peut contenir n'importe quoi au milieu .*
  3. Ne se termine pas ($) dans 3 ' ' [^( {3}]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X