正则表达式 OR(不工作)

正则表达式 OR(不工作)

不知道我在这里缺少什么。我尝试了几种应该有效的组合,但是每次组合时,最后一组数字都会被删除。

我还制作了破折号文字“-”,看看它是否有帮助(没有)

样本数据

PriceVolHistory_KITDQ_v1 (Range_0343935).xlsx
Amex_Robin Smyth (Range_0339935-0339982).pdf
0-CHIPS Participant List - 05-05-15 (Range_0339985-0339986).pdf
0-CHIPS Payment Message Key (Range_0339987-0339990).pdf
0-CHIPS Payment Message Structure (range_0339983-0339984).pdf
2610 Data (Range_0339991).xlsx

正则表达式

Range_(\d{7}|\d{7}-\d{7})
Range_(\d{7}|Range_\d{7}-\d{7})

样本在这里 -https://regex101.com/r/skjYvn/1

非常感谢任何帮助,谢谢。

答案1

正则表达式是贪婪的。他们会尽可能匹配第一件事。 (|a|b)将始终匹配空字符串。

同样,(\d{7}|\d{7}-\d{7})将始终匹配\d{7}(或根本不匹配)。它永远不会进行第二个选项。

相反,你想要的是(\d{7}-\d{7}|\d{7}).但为什么要这么冗长呢?

\d{7}(-\d{7})?也会同样有效。

所以你得到:

Range_\d{7}(-\d{7})? 

相关内容