【问题标题】:Java regular expression - how to evaluate arithmetic operators while replacingJava正则表达式 - 如何在替换时评估算术运算符
【发布时间】:2015-05-15 18:35:18
【问题描述】:

我正在做简单的正则表达式搜索并替换为Eclipse 查找/替换(我假设它在幕后使用 Java 正则表达式)我发现了一些包含一些数字的模式,在替换时我想将这些数字相乘并使用作为替代品。如何仅使用正则表达式来实现这一目标

example string: input30 
regex pattern: input(\d)\d{1,2}
regex replace: output\1*2 // I expect output6 but I get output3*2

【问题讨论】:

  • 你想对字符串“input”后面出现的数字做什么?
  • 您可以在 Perl(如 here 所述)和其他一些脚本语言的模式匹配引擎(例如,here)中执行此操作,但在 AFAIK 中您无法执行此操作Java 纯正则表达式。

标签: java regex eclipse


【解决方案1】:

在 Perl 中使用 eval 修饰符,可以使用这个正则表达式:

#!/usr/bin/perl -w
$_ = 'input30';
s/(input)(\d)\d{1,2}/$1.($2*2)/e;
print $_;

很遗憾,Eclipse 的查找和替换工具不支持此修饰符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 2016-01-16
    • 1970-01-01
    • 2012-03-01
    • 2011-01-03
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多