![](/img/trans.png)
[英]Python how to scan string and and use upper() between two characters?
[英]How to use regex in python in getting a string between two characters?
我有這個作為我的輸入
內容 = 'abc.zip'\n
我想從中取出 abc 。 如何在 python 中使用正則表達式?
編輯:
不,這不是作業問題。 我正在嘗試自動化某些東西,但我被困在某個點,以便我可以使自動化對我擁有的任何 zip 文件通用。
os.system('python unzip.py -z data/ABC.zip -o data/')
獲取 zip 文件后,我將其解壓縮。 我打算通過從 zip 文件所在的目錄中獲取文件名來使其通用,然后將文件名提供給上述語法以解壓縮它
正如我在評論中暗示的那樣,正則表達式不太可能是這項工作的最佳工具(除非對問題有一些人為的限制,或者它比您的示例復雜得多)。 標准字符串和/或路徑庫提供的功能應該可以滿足您的需求。 為了更好地說明這些是如何工作的,我將使用以下content
定義:
>>> content = 'abc.def.zip'
如果它是一個文件,並且您想要名稱和擴展名:
>>> import os.path
>>> filename, extension = os.path.splitext(content)
>>> print filename
abc.def
>>> print extension
.zip
如果它是一個字符串,並且您想刪除 ZE83AED3DDF4667DEC0DAAAACB2BB3BE0BZ 'abc':
>>> noabc = content.replace('abc', '')
>>> print noabc
.def.zip
如果您想在每次出現期間將其分解;
>>> broken = content.split('.')
>>> print broken
['abc', 'def', 'zip']
如果它有多個句點,並且您想在第一個或最后一個句點上打斷它:
>>> broken = content.split('.', 1)
>>> print broken
['abc', 'def.zip']
>>> broken = content.rsplit('.', 1)
>>> print broken
['abc.def', 'zip']
編輯:更改正則表達式以匹配“content = 'abc.zip\n'”而不是字符串“abc.zip”。
import re
#Matching for "content = 'abc.zip\n'"
matches = re.match("(?P<filename>.*).zip\n'$", "content = 'abc.zip\n'")
matches = matches.groupdict()
print matches
#Matching for "abc.zip"
matches = re.match("(?P<filename>.*).zip$", "abc.zip")
matches = matches.groupdict()
print matches
Output:
{'filename': 'abc'}
這將打印.zip
之前所有內容的匹配項。 您可以像普通字典一樣訪問所有內容。
如果您試圖分解路徑的一部分,您可能會發現os.path模塊很有用。 它有很好的抽象和清晰的語義,易於使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.