Обычно вы можете использовать -?
. В качестве альтернативы вы можете использовать -{0,1}
, но вы должны обнаружить, что ?
для «нуля или одного вхождения» поддерживается почти везде.
pax> echo 19740103-0379 | egrep '19740103\-?0379'
19740103-0379
pax> echo 197401030379 | egrep '19740103\-?0379'
197401030379
Если вы хотите принять 12 цифр с любым номером вы можете сделать что-то вроде:
-*([0-9]-*){12}
, которое в основном равно нулю или более дефисов, за которыми следуют 12 вхождений (цифра с последующим нулем или более тире) и будет захватывать все такие как:
--3-53453---34-4534---
(конечно, вы должны использовать \d
вместо [0-9]
, если ваш механизм регулярных выражений поддерживает это).
После просмотра «Почтальона» удалось найти проблему. Вот решение. Проблема заключалась в операторе with open и, в частности, в параметре position для очищенной части, поскольку длина содержимого автоматически переопределялась, поэтому пришлось получать длину содержимого из запроса ответа.
files={'file':('Sample',open('D:/FilePath/Demo.txt','rb'))}
length=os.stat('D:/FilePath/Demo.txt')
filesize=str(length.st_size)
header = {
# 'Content-Type': 'text/plain',
'Authorization': "Bearer " + auth_t
#'If-None-Match': "*" #Conditional HTTP Header
}
header_append = {
'Content-Length': filesize,
'Authorization': "Bearer " + auth_t
#'If-None-Match': "*" #Conditional HTTP Header
}
header_flush = {
'Content-Type': "application/x-www-form-urlencoded",
'Content-Length': '0',
'Authorization': "Bearer " + auth_t,
#'If-None-Match': "*" #Conditional HTTP Header
}
header_read = {
# 'Content-Type': 'text/plain',
'Authorization': "Bearer " + auth_t,
#'Range': 'bytes=300000-302591'
#'If-None-Match': "*" #Conditional HTTP Header
}
try:
init_put=requests.put('https://adlstorageacc.dfs.core.windows.net/adobe/2019/02/DemoStreamFile4.txt?resource=file&recursive=True', headers=header_flush, proxies=proxies,verify=False)
init_write=requests.patch('https://adlstorageacc.dfs.core.windows.net/adobe/2019/02/DemoStreamFile4.txt?action=append&position=0', headers=header_append, proxies=proxies,verify=False,files=files)
flush_length=init_write.request.headers['Content-Length']
flush_url='https://adlstorageacc.dfs.core.windows.net/adobe/2019/02/DemoStreamFile4.txt?action=flush&position=' + str(flush_length)
init_flush=requests.patch(flush_url, headers=header_flush, proxies=proxies,verify=False)
except Exception as e:
print("In Error")
print(e)