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

问题描述 投票:0回答:1

我有一个类似“ 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”,因为我的字符串中有两个小数点。

javascript java string split imacros
1个回答
1
投票

为了解决此类问题,发明了“正则表达式”。我不知道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)”)。

© www.soinside.com 2019 - 2024. All rights reserved.