我需要搜索其中包含这些(不同)值的文本:
0000.html - 8675.html
和
H0000 - H8675
并将其包含在整体搜索中。搜索失败,因为下一页只有在此处,此处和此处略有变化。
我被告知答案是用正则表达式替换文本中这些攀爬数字所在的位置。我试图使用不同的例子,但我认为周期点可能导致它们失败。我可能完全偏离轨道,因为我不熟悉这段代码。
是否有人有经验可以提供帮助?
谢谢zx81 - 我还没有完成任何工作 - 我在xxxx.html中提取了一段文本并搜索了相同的文本(同一文本)并将其吐回一场比赛。
我通常会购买这款RexexMagic,但是经过几个小时的使用示例后,我们已经失去了希望,这对我想做的事情有用。
但非常感谢你的帮助!
答案 0 :(得分:1)
在第三个表达式中,我们将一次匹配您的两个范围。首先,这里是各个范围的一些表达式。
以下是匹配0000.html
到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
或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。
即便如此,您可能不得不调整生成的表达式,以便它们符合您的规格。