简而言之,我正在开发的系统有很多层。在 Java 中,我将得到一个包含要评估的条件的字符串。我将收到一个字符串,其中可能出现对名为“days(int)”的函数的函数调用。该字符串可能如下所示:
1405555200 + days(4)
或
1405555200 + days(param_date)
其中第一个操作数是 Unix 时间戳。系统中的日期转换为 Unix 时间(长整型)。本质上,字符串中的 days(x) 只是“将这么多天添加到时间戳”的符号。由于一天是 86400 秒,我们可以将此表示法简化为“将 86400 倍的参数添加到另一个操作数”。
我需要找到该模式的所有出现并转动
1405555200 + days(param_date)
进入
1405555200 + (86400 * param_date)
我怎样才能干净地做到这一点?
最佳答案
您可以使用String#replaceAll()
:
String newString = oldString.replaceAll("days\\(([^)]+)\\)", "(86400 * $1)");
关于java - 使用正则表达式识别字符串中的模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24812381/