如何使用EditPad的增量数字和固定字母创建正则表达式

时间:2015-06-29 00:56:19

标签: regex editpad

我需要搜索其中包含这些(不同)值的文本:

0000.html - 8675.html

H0000 - H8675

并将其包含在整体搜索中。搜索失败,因为下一页只有在此处,此处和此处略有变化。

我被告知答案是用正则表达式替换文本中这些攀爬数字所在的位置。我试图使用不同的例子,但我认为周期点可能导致它们失败。我可能完全偏离轨道,因为我不熟悉这段代码。

是否有人有经验可以提供帮助?

谢谢zx81 - 我还没有完成任何工作 - 我在xxxx.html中提取了一段文本并搜索了相同的文本(同一文本)并将其吐回一场比赛。

我通常会购买这款RexexMagic,但是经过几个小时的使用示例后,我们已经失去了希望,这对我想做的事情有用。

但非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

在第三个表达式中,我们将一次匹配您的两个范围。首先,这里是各个范围的一些表达式。

以下是匹配0000.html8675.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.htmlB8675.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。

即便如此,您可能不得不调整生成的表达式,以便它们符合您的规格。