2017-03-06 3 views
-1

Ich habe einige alphanumerische Zeichenfolgen. Von dass ich diese Zeichenfolge, um herauszufinden, die die folgende Bedingung erfüllen,Regulärer Ausdruck für das Erhalten einzelner Zeichen eines Zeichens aus einer Zeichenkette

  1. Es sollte nur ein Zeichen in der gesamten Zeichenfolge sein und das sollte ‚e‘
  2. ‚e‘ soll nicht am Anfang vorhanden sein oder Ende der Schnur sollte es in der Mitte vorhanden sein.

Ich möchte Strings holen wie 43e4234,435345e5

Ich kann in Ruby das gleiche tun, aber, wie ich große Anzahl von Strings haben möchte ich mit regulären Ausdrücken gehen nur

+2

Klingt wie ein einfaches '/ \ A \ d + e \ d + \ z /' sollte ausreichen. –

+0

Das macht keinen Sinn. Wenn nur ein Zeichen in der gesamten Zeichenfolge vorhanden ist, muss "e" am Anfang und am Ende vorhanden sein. Wenn es am Anfang oder am Ende nicht * vorhanden ist, muss dort ein * anderes * Zeichen stehen, und dann gibt es mindestens * zwei * Zeichen in der Zeichenkette. Ihre Anforderungen sind widersprüchlich: Es ist unmöglich, eine Zeichenfolge zu haben, die nur aus einem Zeichen besteht und gleichzeitig aus mehr als einem Zeichen besteht. Die von Ihnen geposteten Beispiele verstoßen gegen die Einschränkung Nr. 1, da sie zusätzlich zu "e" die Zeichen "2", "3", "4" und "5" enthalten. –

+0

'2,3,4,5' Ich behandle als Ziffern –

Antwort

1

Dies sollte funktionieren:

/\A[^a-z]+e[^a-z]+\z/i 

Es bedeutet:

  • Anfang der Zeichenfolge
  • mindestens ein nicht-Brief
  • 'e'
  • mindestens ein nicht-Brief
  • Ende der Zeichenfolge

Hier ein Beispiel: https://regex101.com/r/H9oza7/1

Verwenden Sie /^[^a-z]+e[^a-z]+$/im, wenn Sie Linien innerhalb einer Zeichenfolge abgleichen möchten.

Verwandte Themen