0

我在 VB.NET 中有以下正则表达式,它工作得很好。

(Istr_)*(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

但是,我希望“Istr_”部分不区分大小写,而表达式的其余部分仍然区分大小写。我尝试根据MSDN 文档简单地添加“?i:”,如下所示:

(?i:Istr_)*(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

但这打破了RegularExpressionValidator我的形式。

跟这个有关系吗*?我不确定加入模式是否合适。我希望第一个模式是第二个模式的可选不区分大小写前缀。

此外,我不想允许空间,我还没有弄清楚如何去做。

谢谢。:)

4

1 回答 1

4

请参阅此处的讨论:您可以只使正则表达式的一部分不区分大小写吗?

或者做一个不是很漂亮的解决方案,但有效:

([Ii][Ss][Tt][Rr]_)?(8[25]\d{5}[0-9xX]{2}|DR\d{5}[0-9xX]{2}|R\d{2}-\d{4})

我已将您的 * 更改为 ?。这表示:

?: the prefix iStR_ is optional
*: the prefix IStr_ is optional but can occur multiple times
于 2012-08-29T19:36:55.860 回答