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
714

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 >
    为情所困

    匹配出不包含, 这个难度对于正则而言应该是比较大的, 因为这个条件可能在这个位置条件成立了, 在下个位置可能就不成立! 但是正则却会把任何满足pattern的字符串返回
    针对你题目的例子, 我建议用awk实现:

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

    awk能够提供比较灵活的逻辑处理, 可读性也比较强, 相对于单一正则, 所以在题目中的场景, 我觉得awk是比较好的选择,但是如果是用其他语言实现, 可能就要参考别的语言的方式了

      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!