Luc*_*cas 17 python regex perl
在Perl中可以做这样的事情(我希望语法是正确的......):
$string =~ m/lalala(I want this part)lalala/;
$whatIWant = $1;
Run Code Online (Sandbox Code Playgroud)
我想在Python中做同样的事情,并在括号内获取文本,如$ 1.
Nad*_*mli 26
如果您想按名称获取零件,您也可以这样做:
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcom Reynolds")
>>> m.groupdict()
{'first_name': 'Malcom', 'last_name': 'Reynolds'}
Run Code Online (Sandbox Code Playgroud)
该示例来自re docs
mik*_*iku 19
请参阅:Python正则表达式匹配对象
>>> import re
>>> p = re.compile("lalala(I want this part)lalala")
>>> p.match("lalalaI want this partlalala").group(1)
'I want this part'
Run Code Online (Sandbox Code Playgroud)
unu*_*tbu 17
import re
astr = 'lalalabeeplalala'
match = re.search('lalala(.*)lalala', astr)
whatIWant = match.group(1) if match else None
print(whatIWant)
Run Code Online (Sandbox Code Playgroud)
一个小注释:在Perl中,当你写的时候
$string =~ m/lalala(.*)lalala/;
Run Code Online (Sandbox Code Playgroud)
正则表达式可以匹配字符串中的任何位置.等效是通过re.search()函数而不是re.match()函数来完成的,这要求模式匹配从字符串的开头开始.
小智 5
import re
data = "some input data"
m = re.search("some (input) data", data)
if m: # "if match was successful" / "if matched"
print m.group(1)
Run Code Online (Sandbox Code Playgroud)
检查文档了解更多信息。