我试图找出一个与下面列表中的第一个项目匹配的正则表达式序列,而不是其他两个,{Some-Folder}是可变的。
http://www.url.com/{Some-Folder}/
http://www.url.com/{Some-Folder}/thing/key/
http://www.url.com/{Some-Folder}/thing/119487302/
http://www.url.com/{Some-Folder}/{something-else}
基本上我希望能够检测出任何形式的东西:
http://www.url.com/{Some-Folder}/
或
http://www.url.com/{Some-Folder}
但不是
http://www.url.com/{Some-Folder}/{something-else}
到目前为止我已经
了http://www.url.com/[A-Z,-]*\/^.
但这与任何事情都不匹配
答案 0 :(得分:2)
http://www.url.com/[^/]+/?$
或者,在使用\Z
作为文本结尾的少数解析器中
http://www.url.com/[^/]+/?\Z
答案 1 :(得分:1)
我定制了一个regex I've used for URL parsing before,这并不完美,一旦gTLD变得更有用,就需要更多的工作。无论如何,这是:
\bhttps?:\/\/[a-z0-9.-]+\.(?:[a-z]{2,4}|museum|travel)\/[^\/\s]+(?:\/\b)?
您可能希望为您正在使用的任何语言添加不区分大小写的标记。
答案 2 :(得分:0)
您可以使用以下正则表达式:
(?m)http:\/\/www\.example\.com\/[^\/]+\/?$
<强>解释强>
(?m)
:设置m
修饰符,使^
和$
分别匹配行的开头和结尾http:\/\/www\.example\.com\/
:匹配http://www.example.com/
[^\/]+
:匹配除/
以外的任何内容\/?
:可选地匹配/
$
:声明行尾<强> Online demo 强>
答案 3 :(得分:0)
我一直在寻找这个确切问题的答案。 aaaaaa123456789的回答几乎对我有用。但$和\ Z并没有奏效。我的解决方案是:
def split_format(var1, var2):
hour = int(var1.split(':')[0]) - int(var2.split(':')[0])
minute = int(var1.split(':')[1]) - int(var2.split(':')[1])
seconds = float(var1.split (':')[2]) - float(var2.split(':')[2])
time = '{} hours {} minutes {} seconds'.format(
hour, minute, round(seconds, 2)
)
return time
def getFile():
prose = str(input('Please enter the file path for your text file: '))
dictionary = {}
infile = open(prose, 'r')
line_num = 1
line_num2 = 2
for line in infile:
dictionary[line_num]=line
line_num += 1
line_num2 += 1
base = 1
base2 = 2
for x in dictionary:
print(dictionary[base2],(split_format(dictionary[base2],dictionary[base])))
base += 1
base2 += 1
infile.close()
getFile()