在我的等式中: - 10x+10y+5y+22y-10x //x,y,y,y,x
来自字符串匹配函数。我需要一个像x,y
这样的答案。这意味着多值匹配字符串返回单值。请给出建议。谢谢< / p>
var str ='10x+10y+10x-10y'
document.write(str.match(/[a-z]/g));
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
看到答案x&amp; y是双时间present.i需要x,y
..如果方程中存在多个变量,它只返回单个变量
答案 0 :(得分:1)
怎么样
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>
答案 1 :(得分:0)
如果你想要的是找出给定方程中的每个唯一变量,你可以使用正则表达式来过滤掉非字母符号
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);
}