0

有没有更好的方法来编写这个正则表达式,它实际上是另一个类的属性。该类将简单地测试它是否是下面“cpl”中提到的字符串之一。另外,如果我想适合用“|”分隔的字符串 在多行上,例如 |R BERKS CTY RCP| #line 1 结束
|R BERKS CTY RCRP| #line2 结束了,那我该怎么写呢?

   <bean class="com.a.Class">
                        <property name="regEx">
                            <bean class="java.util.regex.Pattern" factory-method="compile">
                                <constructor-arg ref="cpl"/>
                            </bean>    
                        </property>
    </bean>    



 <bean id="cpl" class="java.lang.String">
    <constructor-arg value="(ST RCP|ST CT J DISC P|ST JUV CT|ST J ADMIN|R BERKS CTY J ADMIN|R BERKS CTY RCP|
                |R BERKS CTY RCRP|R CHESTER CTY RCP)">
    </constructor-arg>
 </bean>
4

1 回答 1

0

您可以使用注释修饰符 x:

例子:

<constructor-arg value="(ST RCP|ST CT J DISC P|ST JUV CT|ST J ADMIN|(?x)
                    (?-x)R BERKS CTY J ADMIN|R BERKS CTY RCP|(?x)
                    (?-x)R BERKS CTY RCRP|R CHESTER CTY RCP)">

或者:

<constructor-arg value="(?x)(ST\sRCP|ST\sCT\sJ\sDISC\sP|ST\sJUV \sCT| #you can
                             ST\sJ\sADMIN|R\sBERKS\sCTY\sJ\sADMIN|R\s #put 
                             BERKS\sCTY\sRCP|R\sBERKS\sCTY\sRCRP|R\sC #comments
                             HESTER\sCTY\sRCP)(?-x)">

使用注释模式,正则表达式引擎不关心空格,因此您必须显式编写所有空格。

(?x)激活评论模式

(?-x)停用

于 2013-06-12T17:44:41.403 回答