iMacros-删除字符串中的最后一个字符

我有一个类似“ 673.35”的字符串。定义为VAR3。

我只想删除最后一个“。”所以我只剩下“ 673.35”。对我来说,这非常棘手。在Google Chrome上使用iMacros插件的免费版本。

我不能使用分割函数或替换函数,因为我的字符串中总是有一个小数点。

SET !VAR3 EVAL("var s = '{{!VAR3}}'; var x,y,z; y = s.split('.'); z = y[1].split('.'); z[0];")

这是我尝试过的方法,但是很明显它返回“ 35”,因为我的字符串中有两个小数点。

keith1985 回答:iMacros-删除字符串中的最后一个字符

为解决此类问题,发明了“正则表达式”。我不知道imacros是否可以处理正则表达式,但是由于您添加了“ java”作为标记,因此我在这里提供了如何用java编写的解决方案:

    String s = "673.35.";
    String regexp = "^(.*)(\\.?)$";
    Matcher m = Pattern.compile(regexp).matcher(s);

    if ( m.matches() )
    {
        String result = m.group( 1);
        System.out.println( "result: " + result );
    }
    else
    {
        System.out.println( "no match");
    }

此正则表达式适用于

673.53. > 673.53
673.53  > 673.53
12345.  > 12345
12345   > 12345

Regexp看起来很神秘,但是功能非常强大。在java.util.regex.Pattern的Java文档中了解它。这里对上述正则表达式进行了一些解释:“ ^”是“行/字符串的开始”,“。*”是“任何字符,'\\”。是“一个点”(因为“。”是“任何字符”,所以点本身必须用“ \”转义,在Java字符串常量中也必须使用“ \”,因此也要转义两个“ \”),' '是“一次或一次”(在前面的定义中,这里是点)“ $”是“行/字符串的结尾”。括号将搜索结果分组以便随后访问它(“ m.group(1)”)。

本文链接:https://www.f2er.com/3085896.html

大家都在问