【发布时间】:2021-12-25 03:01:54
【问题描述】:
我有一个可变的数字列表(交换机端口),我需要将其构建到一个字符串中,指示哪些端口应该“包含”,哪些应该“排除”。 以下是所需格式的示例:
(Port 1[!(0-2 | 4-9)] | Port 4[!(0-3 | 5)])*
在本例中,如果我的号码是 1-19 和 40-45,则端口 1、端口 3 和端口 44 将包括在内,而端口 10-12、14-19、40-43 和 45 将包括在内排除在外。
我事先不知道端口列表中会出现什么数字。如何构建这个表达式?
【问题讨论】:
-
“表达式”是指正则表达式吗?
-
我会使用条件正则表达式,但如果您不熟悉正则表达式,它可能不那么可读 ->
Port (1)?(?(1)(3|$)|(4)?(?(3)(4|$)|[235-9]))