检查属性是否与模式匹配

时间:2015-06-01 07:39:39

标签: regex pattern-matching nant

使用NAnt,我想检查我的属性是否符合以下模式:[0-9a-zA-Z_]

到目前为止我已尝试过这个:

    <condition property="check-my-prop">
      <matches pattern="[1-9a-zA-Z_]" string="${MyProp}"/>
    </condition>
    <fail message="my-prop must match pattern [1-9a-zA-Z_]"
          unless="check-my-prop" />

NAnt抛出错误:Invalid element <condition>. Unknown task or datatype.

代码改编自Ant,而不是NAnt。

我如何实现同样的目标?

1 个答案:

答案 0 :(得分:0)

    <property name="CheckMyProp" value="" />
    <regex pattern="^(?'CheckMyProp'[1-9a-zA-Z_]+)$" input="${MyProp}" failonerror="false"/>    
    <if test="${string::get-length(CheckMyProp) == 0}">
      <fail>MyProp must match pattern [1-9a-zA-Z_]</fail>
    </if>