Perl也有一些很好的和簡單的函數的返回值設置爲一個變量Python的正則表達式得到從字符串返回值
if($string =~ /<(\w+)>/){
$name = $1;
}
這是我嘗試了Python和它的工作原理,但沒有任何替代這樣做的方式?
if re.match('\s*<\w+>.+', string):
var = re.findall('>(\w+)<', string)
Perl也有一些很好的和簡單的函數的返回值設置爲一個變量Python的正則表達式得到從字符串返回值
if($string =~ /<(\w+)>/){
$name = $1;
}
這是我嘗試了Python和它的工作原理,但沒有任何替代這樣做的方式?
if re.match('\s*<\w+>.+', string):
var = re.findall('>(\w+)<', string)
希望這是你在尋找什麼:
string = "id: 10"
match = re.search("id: (\d+)", string)
if match:
id = match.group(1)
print id
無論您需要什麼,你有可能Python re doc一切。
耶右一爲我,謝謝 – Pythonizer
你不需要做match
其次findall
,findall
會返回一個空列表時,有沒有匹配:
>>> string = 'sdafasdf asdfas '
>>> var = re.findall('>(\w+)<', string)
>>> var
[]
所以,你可以這樣翻譯您Perl
例如:
try: name = re.findall('>(\w+)<', string)[0]
except IndexError: name = 'unknown'
我不認爲你的正則表達式會匹配任何東西。它們都相互矛盾。
這是你會怎麼做Python中的比賽:
import re
string = "string"
matches = re.match('(\w+)', string)
print matches.group()
您應該添加'。集團(0)'的'var'行結束 – sshashank124