php - So verwenden Sie den regulären Vergleich, um Wörter zu finden, die ein bestimmtes Wort nicht enthalten (mehrere Zeichen, nicht der Anfang oder das Ende)
習慣沉默
習慣沉默 2017-05-24 11:32:15
0
2
841

Off-topic: Als ich unter Linux war, habe ich mich gefragt, ob ich das mit nur einem grep machen könnte Ich habe darüber nachgedacht, ob ich reguläre Ausdrücke verwenden könnte. Es wird eine bestimmte Zeile gefunden, die ein bestimmtes Wort nicht enthält (z. B. wtmp), aber das Ergebnis wird nicht ermittelt.

習慣沉默
習慣沉默

Antworte allen(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是比较好的选择,但是如果是用其他语言实现, 可能就要参考别的语言的方式了

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage