2017-12-25 9 views
-1

Ich habe drei Strings als Liste unten:Wie bekomme ich das erste Match in Regexp?

Levofloxacin 500mg/100mL 
Levofloxacin 500mg 
Procaterol Hydrochloride …………… 25μg 

Die erste Zeile, ich möchte nur bekommen ‚mg‘ ohne ‚ml‘ in meinem Ergebnis.

Die zweite Zeile, ich möchte 'mg' bekommen.

Die dritte Zeile, ich möchte 'ug' bekommen.

habe ich regexp Muster wie versuchen:

(?!(.*[ ]{1}[0-9]+))[a-zA-Zμ]+ 

jedoch die erste Zeile immer wieder 'mg' mit 'ml' ...

Wie kann ich erwerben nur 'mg' mit regexp?

Alle Vorschläge werden geschätzt.

+0

zeigen, was genau soll – RomanPerekhrest

+0

gerade nur ‚mg‘ (ohne ‚ml‘) – auxo

+0

Versuche [ '^ \ D + \ angepasst werden d + \ K [az] + '] (https://regex101.com/r/uJSwkZ/4) – Gurman

Antwort

0

Wie in den Kommentaren erwähnt, versuchen Sie diese Regex:

^\D*[\d.]+\K[a-zμ]+ 

Click for Demo

Erläuterung:

  • ^ - behauptet den Beginn der Zeichenfolge
  • \D* - Übereinstimmungen 0+ vorkommen ces jedes Zeichen, das keine Ziffer
  • [\d.]+ ist - Streichhölzer 1+ Vorkommen jedes Zeichen, das eine Ziffer
  • \K ist - entfernt, was bisher wurde
  • [a-zμ]+ abgestimmt - das ist, was Sie wollen. Dies enthält die Einheiten wie mg, ml, die nach der ersten Zahl erscheinen. Wenn es irgendwelche andere Sonderzeichen wie μ sind, können Sie sie auch in dieser Zeichenliste hinzufügen
Verwandte Themen