我在 Java 中遇到了正则表达式的问题。我测试了我的正则表达式,它似乎匹配得很好,但是其中一个组返回了一个空值。它能够找到正确数量的组,但我不知道为什么第二个序列似乎以错误的索引开始和结束。
图案:
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]?)+([\w\-]*)$
待测数据:
http://www.testing.ca/en/ABC-DEF/uvw_XY5114_2-Z_1_54321
寻找:XY5114
这是来自 regexplanet 的截图:
编辑:我通过使用以下模式得到了这个工作:
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]*)([\w\-]*)$
另一个选项建议:
^http\://[\w\-\.]+\.[a-zA-Z]{2}/[\w]{2}/[\w\-]+/(uvw_)+([a-zA-Z0-9]+)([\w\-]*)$