2016-05-13 7 views
0

In meiner Gleichung wie: - 10x+10y+5y+22y-10x //x,y,y,y,x von String Match function.I brauchen eine Antwort wie x,y .Es den Mehrwert Match String Rückkehr mit einzelner value.please bedeuten gibt dem suggestion.thanksWie mit mehreren Werten übereinstimmen, Rückgabe mit Einzelwert mit Regex?

var str ='10x+10y+10x-10y' 
 
document.write(str.match(/[a-z]/g));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

siehe die Antwort x & y sind Dualzeit present.i benötigen x,y ..wenn mehrere Variablen in der Gleichung senden sie es mit einzelnen Variablen nur

+0

verwenden würde, um herauszufinden, gibst du uns bitte ein beispiel? –

+0

Sehr unklar, was Sie wollen. Möchten Sie die Variablen identifizieren? Probieren Sie '/ ([a-z])/g.exec ('10x + 10y + 5y + 22y-10x');'. – ClasG

Antwort

1

Wie wäre es

var allVars='10x+10y+5y+22y-10x'.match(/[a-z]/g), 
 
    uniqueVars = []; 
 
$.each(allVars, function(i, el){ 
 
    if($.inArray(el, uniqueVars) === -1) uniqueVars.push(el); 
 
}); 
 
document.write(uniqueVars.join());
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

Wenn das, was Sie wollen, ist jede einzelne Variable in einer gegebenen Gleichung können Sie einen regulären Ausdruck nicht-Buchstaben-Symbole, um herauszufiltern

String str = "10x+10y+5y+22y-10x"; 
    List<String> variables = new ArrayList<>(); 

    Pattern p = Pattern.compile("[A-Za-z]"); 
    Matcher m = p.matcher(str); 

    while(m.find()) { 
     String v = m.group(); 
     if (!variables.contains(v)) //unique part 
       variables.add(v); 
    } 

    for (String variable : variables) { 
     System.out.println(variable); 
    }