webentwicklung-frage-antwort-db.com.de

Wie passen Sie in einem regulären Ausdruck eines von zwei Wörtern an?

Ich möchte entweder @ oder 'at' in einer Regex angeben. Kann jemand helfen? Ich habe versucht, die? Operator, der mir/@? (at)?/gibt, aber das hat nicht funktioniert

33
Adrian Sarli

Versuchen:

/(@|at)/

Dies bedeutet entweder @ oder at, jedoch nicht beides. Es wird auch in einer Gruppe erfasst, sodass Sie später über eine Rückwärtsreferenz auf die genaue Übereinstimmung zugreifen können, wenn Sie möchten.

57
Michael Myers
/(?:@|at)/

mmyers 'antwort führt eine paren-aufnahme durch; meins wird nicht Welche Sie verwenden sollten, hängt davon ab, ob Sie die Paren-Aufnahme durchführen möchten.

34
chaos

wenn dies nur 2 Dinge sind, die Sie erfassen möchten, brauchen Sie keine Regex

if ( strpos($string,"@")!==FALSE || strpos($string,"at") !==FALSE ) {
  # do your thing
}
4
ghostdog74

hast du es versucht 

@|at

das funktioniert für (in der .NET Regex-Variante) für den folgenden Text

[email protected]

2
Josh E

Wie wäre es mit:

^(\w*(@|at))

Zum:

  • johnsmith @ gmail.com
  • johnsmithat gmail.com
  • jonsmith @ atgmail.com
0