如何匹配多个值使用正则表达式返回单个值

How to Match with multiple values return with single value using regex?

本文关键字:正则表达式 返回 单个值 何匹配      更新时间:2023-09-26

在我的等式中,比如:-10x+10y+5y+22y-10x //x,y,y,y,x来自字符串匹配函数。我需要一个类似x,y的答案。这意味着多值匹配字符串返回单个值。请给出建议。谢谢

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>

参见答案x&y是双重时间。我需要x,y。。如果方程中存在多个变量,则仅返回单个变量

怎么样

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>

如果你想找出给定方程中的每个唯一变量,你可以使用正则表达式过滤掉非字母符号

    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);
    }