【问题标题】:regex using OR in statement在语句中使用 OR 的正则表达式
【发布时间】:2012-10-08 13:59:29
【问题描述】:

我正在使用 Ant,我想匹配看起来像 import package.R;import package.R.*; 但不是 import package.Rxxx; 的字符串

所以我只想为;.这两个字符使用某种通配符

我当前的解决方案使用两种不同的语句

match="import.+?\.R;"

match="import.+?\.R."

但是为了速度我想把它们合二为一

【问题讨论】:

    标签: regex ant replace wildcard


    【解决方案1】:

    我对特定于 ant 的正则表达式了解不多,但如果它应该支持字符类,那么

    match="import.+?\.R[;.]"
    

    应该工作 [;.] 意思是 ;.

    【讨论】:

    • 好的,这符合您的预期,但我的替代声明对我不利。对于以R; 结尾的字符串,我想保持那部分原样,所以我的替换语句使用;,但对于以R.* 结尾的字符串,我也想保持原样,所以我的替换语句不能使用;... 抱歉,如果这含糊不清,但我也需要针对这种情况发表声明。这是我当前的替换 replace="import ${current.target}.R;"
    • 您的意思是您不想在以.* 结尾的行上使用最终的;match="import.+?\.R(;|\.\*)"replace="import ${current.target}.R\1"
    • @didster 对于它的价值,Ant 只是使用 Java 进行正则表达式。没有“Ant 特定的正则表达式”语法。
    • @Jeanne Boyarsky 谢谢 - 在那种情况下“我对 Java 特定的正则表达式也不太了解”;o) - 我所有的正则表达式都来自 Perl。
    猜你喜欢
    • 2014-12-06
    • 2012-08-28
    • 2012-07-17
    • 2011-05-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多