由于将传统平台与较新平台相结合,我们需要一个可以捕获两种不同类型输入的单一正则表达式。 这显然不是很好的做法 - 并且在我们能够平衡整合并恢复理智之前,它将成为一种临时解决方案。
Regex表达式必须具有:
两种类型的输入:
12345678
997744_12345678_33557799
,预期结果为12345678
。仅对#1类型的输入,正则表达式可能是(\d+)
。对于仅#2类型的输入,正则表达式可能是\d+\_(\d+)\_\d+
。但正如所说 - 我需要一个可以处理这两者的正则表达式。
我试图将这两者结合起来,如下所示:
\d{0,}\_{0,1}(\d+)\_{0,1}\d{0,}
- >适用于类型#2,因为第一个表达式的贪婪
因此尝试通过添加?
使第一个表达非贪婪,得到这个:
\d{0,}?\_{0,1}(\d+)\_{0,1}\d{0,}
- >适用于类型#1,但捕获类型#2中的第一个和最后一个ID,而不是中间的ID。
我没有想法,但我很确定Regex是强大的,几乎可以做任何事情......