有没有更好的方法来编写这个正则表达式,这实际上是另一个类的属性。该类将简单地测试它是否是下面“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>
答案 0 :(得分: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)
停用