在第三个表达式中,我们将一次性匹配您的两个范围。首先,这里是个别范围的一些表达式。
这是匹配范围 from 0000.html
to的一种方法8675.html
:
\b(?=\d{4}\.)0*(?:867[0-5]|86[0-6][0-9]|8[0-5][0-9]{2}|[1-7][0-9]{3}|[1-9][0-9]{1,2}|[0-9])\.html
解释
- 该模式
(?:867[0-5]|86[0-6][0-9]|8[0-5][0-9]{2}|[1-7][0-9]{3}|[1-9][0-9]{1,2}|[0-9])
匹配从 0 到 8675 的数字
- 我
0*
在前面添加以匹配可选零
- 我
(?=\d{4}\.)
在前面添加以确保我们在点之前正好有四位数字
- 我在前面添加了一个单词边界
\b
,以确保我们的字符串不会嵌入到较长的字符串中,例如18675.html
or B8675.html
。
对于第二个,H
在前面添加一个:
\bH(?=\d{4}\.)0*(?:867[0-5]|86[0-6][0-9]|8[0-5][0-9]{2}|[1-7][0-9]{3}|[1-9][0-9]{1,2}|[0-9])\.html
要用一块石头杀死两者,请H
选择:
\bH?(?=\d{4}\.)0*(?:867[0-5]|86[0-6][0-9]|8[0-5][0-9]{2}|[1-7][0-9]{3}|[1-9][0-9]{1,2}|[0-9])\.html
在实践中
对于这类表达式,除非您对正则表达式有经验,否则我建议您使用范围生成器。(如果您在正则表达式方面有经验,您已经知道这些范围非常容易出错,因此您最好使用范围生成器。)
网上有一些免费的(我不完全信任),但由于您使用 JGSoft 的 EditPad,您可能想看看他的 RegexMagic。
即便如此,您可能仍需要调整生成的表达式以使其符合您的规范。