2017-12-24 8 views
-3

Was könnte Regex Muster für Float oder Integer und Leerzeichen und ein Wort?Regex Muster für Float oder Integer und Leerzeichen und Wort

Beispiele:

str = "12.4 count"

OR

str = "12 count"

OR

str = "(12.4 count)"

+0

Wenn Sie Hilfe benötigen eine RegEx-Anweisung ein Dienstprogramm wie [RegExr] (https://regexr.com/) versuchen zu schaffen, ist es enthält Verweise für jedes Token in RegEx und einen interaktiven Viewer, der Ihnen anzeigt, wie Ihr aktueller RegEx-String übereinstimmt. –

Antwort

0

Diese Regex funktionieren würde:

([0-9]+([.][0-9]+)? [a-zA-Z]+) 
  • [0-9]+ wird jede ganze Zahl passen ...
  • ... ([.][0-9]+)? oder schwimmen ..
  • ... [a-zA-Z]+ gefolgt von einem Leerzeichen und einem Wort (unter der Annahme, dass nur Zeichen aus dem lateinischen Alphabet gefunden werden sollen)
0

Sie können die folgende regex verwenden:

(\d+(\.\d+)? \w+) 

var reg = function(str){ 
 
    return str.match(/(\d+(\.\d+)? \w+)/g); 
 
} 
 
console.log(reg("12.4 count")); 
 
console.log(reg("12 count")); 
 
console.log(reg("(12.4 count)"));

0

Versuchen Sie folgendes:

var re = /(\d+(\.\d+)?)\s(\w+)/; 
 

 
var strs = [ 
 
"12.4 count", 
 
"12 count", 
 
"(12.4 count)" 
 
] 
 

 
strs.forEach(
 
    (str) => { 
 
    var res = re.exec(str); 
 
    console.log('Full Match', res[0]); 
 
    console.log('Number', res[1]); 
 
    console.log('Word', res[3]); 
 
    } 
 
);

Dieser wird Ihnen die Werte geben aber nur einmal pro String finden.

var re = /(\d+(\.\d+)?)\s(\w+)/g; // Do a global search, more than once per string 
 

 
var strs = [ 
 
"12.4 count. 43.23 mountains. 134 fish.", 
 
"12 count", 
 
"(12.4 count)" 
 
] 
 

 
strs.forEach(
 
    (str) => { 
 
    while(true) { 
 
     var res = re.exec(str); 
 
     if (res === null) { 
 
     break; 
 
     } 
 
     console.log('Full Match:', res[0]); 
 
     console.log('Number:', res[1]); 
 
     console.log('Word:', res[3]); 
 
    } 
 
    } 
 
);

Dieses jedes Spiel in einer Zeichenfolge finden, auch wenn es mehrere Übereinstimmungen gibt.

/(\d+(\.\d+)?)\s(\w+)/ 

\ d + = Ein oder mehr Ziffer

(. \ D +)? = Übereinstimmung a. und dann eine oder mehrere Ziffern und das Ganze null oder eins.

\ s = Leerzeichen

\ w + = Ein oder mehr Alpha Numeric

Die Klammern werden verwendet, um Gruppen zu erstellen, damit Sie die einzelnen Abschnitte herausziehen können, wenn Sie wollen,

1

zu match:

Schwimmers oder integer und Raum und ein Wort

Dies könnte ein Ansatz sein:

\d*\.?\d+ \w+

Erklärung

  • Spiel null oder mehr Ziffern \d*
  • Spiel ein optionaler Punkt \.?
  • Spiel eine oder mehrere Ziffern \d+
  • Ein wörtlicher Raum
  • Spiel jeden Wort Charakter eines oder mehr Male \w+
Verwandte Themen