php - Comment utiliser la correspondance régulière pour trouver des mots qui ne contiennent pas un mot spécifique (plusieurs caractères, pas le début ni la fin)
習慣沉默
習慣沉默 2017-05-24 11:32:15
0
2
810

Hors sujet : quand j'étais sous Linux, j'ai vu last | grep [a-zA-Z] | grep -v 'wtmp' | Je me demandais si je pouvais le faire avec un seul grep, alors je J'ai réfléchi à la possibilité d'utiliser des expressions régulières. Une certaine ligne correspond à un certain mot (comme wtmp), mais le résultat n'est pas compris.

習慣沉默
習慣沉默

répondre à tous(2)
淡淡烟草味

js
/^(?!.*wtmp)/

> p1=/^(?!.*wtmp)/
/^(?!.*wtmp)/
> p1.test('abc123')
true
> p1.test('abc1wtmp23')
false
>
为情所困

La correspondance ne contient pas, cette difficulté devrait être relativement grande pour les expressions régulières, car cette condition peut être vraie à cette position, mais elle peut ne pas être vraie à la position suivante. Cependant, les expressions régulières renverront toute chaîne qui satisfait au modèle
Pour Pour l'exemple de votre question, je suggère d'utiliser awk pour l'implémenter :awk实现:

last | awk '!=wtpm&&/[A-Za-z]/{num++}END{print num}'

awk rrreee

awk peut fournir un traitement logique plus flexible et est plus lisible Par rapport à une seule expression régulière, je pense que awk est un meilleur choix dans le scénario de la question, mais si vous utilisez un autre langage pour l'implémentation, vous devrez peut-être vous référer aux méthodes d'autres langues🎜
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!