当每个条件之间存在间隙时,我无法编写perl兼容的正则表达式以匹配一些不同的东西。当我解释我想要它找到什么时,它会更有意义
条件
我遇到的问题是我不知道如何编写表达式,使得条件#1和#2之间可能存在间隙。条件#2 - #4可以重复,但并非总是如此。
我一直在使用多个在线正则表达式测试人员,但我无法得到匹配,我不确定我做错了什么。我认为正则表达式正在寻找/world/x_x
或/world/y-y
而不是“向前看”以匹配“字母短信”或“字母下划线字母”模式。
当前正则表达式
/world/([a-z](-|_)[a-z]){1,}\.[a-z]{3,4}$
所需匹配(当前不匹配)
hxxp://armassimchilzeispreu.blackjackipad.com/world/activate_available.jar
hxxp://chubfaceddamsel0.affittobarcheavela.it/world/eternal_threat-clearing.html
hxxp://offdestroyengarabitar.freebookofraslot.com/world/bonus-middle-marathon.pdf
答案 0 :(得分:3)
我想你想要这个
use strict;
use warnings;
while (<DATA>) {
chomp;
print "OK $_\n" if m</world/[a-z]+(?:[_-][a-z]+)+\.[a-z]{3,4}$>;
}
__DATA__
hxxp://armassimchilzeispreu.blackjackipad.com/world/activate_available.jar
hxxp://chubfaceddamsel0.affittobarcheavela.it/world/eternal_threat-clearing.html
hxxp://offdestroyengarabitar.freebookofraslot.com/world/bonus-middle-marathon.pdf
或者只是
m</world/[a-z-_]+\.[a-z]{3,4}$>