Python正则表达式:Extract lin

2024-10-01 02:29:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样的想法:

javascript:ColdFusion.Window.show('theformats');ColdFusion.navigate('exportformats.cfm?id=1900067&expformat=bibtex','theformats');

我们把它分成两部分:

1)'导出格式.cfm?id=1900067&;expformat=bibtex' 2) 其余的,左右的

在Python中,如果2)永远不变,那么获得1)的最佳方法是什么?你知道吗

到目前为止,我试过“寻找”[ColdFusion.navigate文件(']在字符串中,然后从那里切片直到[','],但是我真的很想学习如何为它编造最好的正则表达式,并用Python这样做。你知道吗


Tags: 文件方法id格式showbibtexjavascriptwindow
3条回答
>>> import re
>>> sample = "javascript:ColdFusion.Window.show('theformats');ColdFusion.navigate('exportformats.cfm?id=1900067&expformat=bibtex','theformats');"
>>> regex = r"javascript:ColdFusion\.Window\.show\('theformats'\);ColdFusion.navigate\('([^']+)','theformats'\);"
>>> print re.match(regex, sample).group(1)
'exportformats.cfm?id=1900067&expformat=bibtex'

我同意arxanas的回答,但如果您的1)可能包含单引号或其他字符:

str = "javascript:ColdFusion.Window.show('theformats');ColdFusion.navigate('exportformats.cfm?id=1900067'&expformat=bibtex','theformats');"
str = str.split("javascript:ColdFusion.Window.show('theformats');ColdFusion.navigate('")[1].split("','theformats');")[0]

http://codepad.org/lAk5d6ZV

你不需要正则表达式。通常,当面对成对的符号时,您可以这样做:

mystr = "javascript:ColdFusion.Window.show('theformats');ColdFusion.navigate('exportformats.cfm?id=1900067&expformat=bibtex','theformats');"
mystr.split("'")[3] # Returns exportformats.cfm?id=1900067&expformat=bibtex

相关问题 更多 >