python让我的正则表达式不那么贪婪?

2024-09-29 17:21:19 发布

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

我正在寻找一些Python正则表达式,我可以用它从一个只有一行文本(实际上是JavaScript代码)的文件中提取字符串。你知道吗

我要找的一个例子是提取子字符串所取的变量名:

如果我分析的文本行是:

"var foo = bar.substr(baz % qux, morestuffhere"

我希望我的对手是酒吧。我使用的是以下等式,在等号之后和模运算符之前匹配:

pat = r"\s?\=\s?(.*?)\.substr\(\s?baz\s?\%\s?"

如果感兴趣的字符串位于新行上,那么这种方法非常有效,但是当较长字符串的一部分失败时。See here for a failed example:

我想问题是我的正则表达式不那么贪婪?虽然不确定。感谢指点。你知道吗


Tags: 文件字符串代码文本foovarbarbaz
1条回答
网友
1楼 · 发布于 2024-09-29 17:21:19

就像revo在评论中说的那样,你需要对你的比赛小组更具体一些。你知道吗

.*?接受所有类型的字符

\S*?取非空格字符

\w*?取单词字符

所以你可以试试这个:

\s?\=\s?(\w*?)\.substr\(\s?baz\s?\%\s?

相关问题 更多 >

    热门问题