2017-04-17 17 views
0

Ich habe unten Zeichenfolge für ein Szenario zeigt es ":" Doppelpunkt und andere Szenario Doppelpunkt wird nicht angezeigt. Ich muss die Nummer erfassen, gefolgt von der Zeichenfolge. Ich habe Regex geschrieben, um Nummer zu erfassen, gefolgt von ":" Doppelpunkt. Bitte lassen Sie mich wissen, wie ich RegEx schreiben können, die nicht KolonJava-RegEx: Wie Nummer finden, gefolgt von Leerzeichen ohne Doppelpunkt

String haben: für die Zahlung von Ihrem Konto Ihre Authentifizierungscode ist 19930 hinzuzufügen Testuser als Empfänger. Wenn Sie nicht angefordert haben dieses Empfänger hinzufügen möchten, wenden Sie sich bitte sofort die Bank auf 00971 600 54 0000

Ihre Authentifizierungscode ist: 58.738 AED 500.00 zu zahlen durch Online/Mobile Banking Emicool. Bitte teilen Sie diesen Code nicht mit anderen Personen. Wenn Sie keine Zahlung angefordert haben, kontaktieren Sie bitte die Bank SOFORT unter 00971 600 54 0000.

Der fettgedruckte Absatz enthält keinen Doppelpunkt, nachdem das Wort "is" und der Kursivabsatz einen Doppelpunkt haben.

-Code habe ich für die Erfassung Zahl nach Farbe

geschrieben
List<WebElement> rows = driver1.findElements(By.cssSelector("tr")); 
      for (WebElement row : rows) 
      { 
       String text = row.getText(); 
       if (text.contains(mobilenumber)) 
       { 
        String regex = ": (\\d+)"; //Your authentication code is 


        Pattern pattern = Pattern.compile(regex); 
        Matcher matcher = pattern.matcher(text); 

        if (matcher.find())    
         { 

         valueis = matcher.group(1); 
         System.out.println(valueis); 

         break; 

Ich habe die obigen Meldungen in einer Tabelle erfasst und wenn ich? „: (\ D +)“ die Telefonnummer erfasst wird, nicht aber die fünf Ziffern.

<tr bgcolor="#EBD8B8"> 

<td align="left" nowrap><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;00955555555555</font></td> 
<td align="left" nowrap><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;2017-04-17 14:24:37.257</font></td> 
<td align="left"><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;Your authentication code is 28201 to add name as beneficiary for payment from your account. If you have not requested to add this beneficiary, please contact the bank 

SOFORT auf 00971 600 54 0000.

<td align="left" nowrap><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;00955111111111</font></td> 
<td align="left" nowrap><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;2017-04-17 14:16:19.243</font></td> 
<td align="left"><font face="times new roman" size=3 >&nbsp;&nbsp;&nbsp;Your new Online and Mobile Banking application authentication code is 81419. Please do not share this code with any person. To complete the process, please visit www.emiratesnbd.com, click on Register Online/Forgot User ID or Password, click on Forgot User ID or Password. Thank you.</font></td> 
<tr> 
+0

Sie möchten Zahlen erfassen, wenn sie hinter einem ':' stehen und sonst nichts? –

+0

Ich habe die fünfstellige Zahlen nach der Aufnahme erfasst und ich möchte fivie Ziffern nach dem Text ohne Doppelpunkt erfassen – Sowmya

+0

So korrigieren Sie mich, wenn ich falsch liege. Du brauchst zwei Muster: ** eins für Ziffern nicht nach ':' ** und ** eins für Ziffern nach ':' ** Habe ich Recht? oder nicht? –

Antwort

0

können Sie den Doppelpunkt optional machen, indem Sie den ? Operator

https://regexone.com/lesson/optional_characters (vielleicht ist dies hilfreich ist)

Regex:

":? (\\d+)" 

Update: hinzugefügt Look-Ahead-DEMO

/(= (Ihr Authentifizierungscode ist:?)) \ 1 (\ d +)/g

Oder noch einfacher withouth Vorgriff : DEMO2 Verwenden Sie 1, um die Capture-Gruppe die Nummer

/Your authentication code is:? (\d+)/gm 
+2

In diesem Fall würde es auch '00971',' 600', '54' und' 0000' entsprechen, was das OP nicht benötigt, um – BackSlash

+0

zu erreichen. Hmm, in diesem Fall könnten wir einen Lookahead hinzufügen: "(? = Ihr Authentifizierungscode lautet:? (\\ d +) " –

+0

Nein, Sie brauchen einen Lookbehind. –

0
^\D*(\d+) 

Vielleicht t zu erhalten er kann dir helfen.

+0

falsch .......... –

+2

Bitte, nicht Link nur antworten. – Toto

Verwandte Themen