我需要考虑一组非常复杂的差异。是编写一个匹配所有这些的正则表达式,还是用 Java 编写单个的正则表达式并在 if-then 块中测试每个正则表达式更好?
我什至无法想出匹配每种情况的正则表达式,所以这可能是一个有争议的问题:
这是输入:
- CN666SEEEI
- FOC000007HW (2190000002)
- FHK10AAAAAA (2850000004)
- JAB031444BA (3108888022)
- 编号JAE14445WW7
- 序列号:FOC0818S08R型号:Cisc
- 序列号:FHK10HHHQ4
- 型号:CISCO7200VXR,序列号:36555555
- 思科 CISCO3845 SN:FGL15555532
- CISCO2831 FHK13XXXX1E
- CISCO1851 序列号:FHK1XXXX55M
- CISCO2821 序列号:FHK1333F11J
- CISCO2921/K9,序列号:FHK1444FF7F
- 思科 1941/k9 锡:FHK13HHHTQ
- CISCO2121 SN:FHKFFFFEY
- WS-C2970-24TC-L,序列号:FOCXXXXZ34K
- WS-C3760-24TS-S,序列号:FDOXXXXX0F6
- 38 42 42 42 42 42 42 44 42 42
现在我需要提取序列号——实际上第一行是最简单的形式,其余的都隐藏在字符串中。最后一个完全无效,应该匹配。