java - 使用正则表达式识别字符串中的模式匹配

标签 java regex string expression

简而言之,我正在开发的系统有很多层。在 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/

相关文章:

javascript - JavaScript 中的“unraw”字符串

java - 马文能做到这一点吗?运行selenium测试,生成报告,然后执行jar文件

Java Scanner - 两个定界符和异常

java - For 循环中出现意外的 While 标记

java - 带有 IAM 的 AWS MSK - 超时异常

python - 如何从 ip link show 命令中拆分行?

javascript - 正则表达式 - 从字符串中删除所有出现的单词

javascript - jquery每个regexp href同时检查一些字符串

c++ - wcout与cout、wstring与string的混淆

c++ - 从文件读取时使用 ">>"运算符后如何将光标移至下一行