擅长:python、mysql、java
<p>我没有足够的声誉来评论这个问题,这是应该的,我不能说我完全理解这个问题。但要指出几点:</p>
<p>它是关于添加变量到你的正则表达式,然后你应该使用字符串模板,使我们和你未来的自我更容易理解。你知道吗</p>
<pre><code>"^{}".format(variable)
</code></pre>
<p>这样做将允许您创建一个搜索所需内容的动态正则表达式。你知道吗</p>
<p>第二,我不认为这是你的问题。我认为你的正则表达式格式不正确。我不知道您到底想搜索什么,但我建议您阅读<a href="https://docs.python.org/2/howto/regex.html" rel="nofollow noreferrer">python regex documentation</a>,并在<a href="http://www.regex101.com" rel="nofollow noreferrer">regex101</a>这样的资源上测试regex,以确保您捕获了您想要的内容。据我所知,您对<strong>组有点困惑。当你在一个模式周围加上括号时,你就把它标识为一个<strong>组</strong>。在搜索过程中,您试图用方括号将圆括号括起来,从而排除圆括号,但这样做更简单、更简洁。你知道吗</p>
<p>如果您试图捕获此语句:</p>
<pre><code>if(someCondition == fries)
</code></pre>
<p>如果要提取关键字fries,则该模式的有效语法为:</p>
<pre><code>(?=if\((?:[\w=\s])+(fries)\))
</code></pre>
<p>因为您希望这是动态的,所以您可以用字符串模板替换字符串<em>fries</em>,您将得到这样的代码:</p>
<pre><code>p = re.compile("(?=if\((?:[\w=\s])+({})\))".format(search), re.IGNORECASE)
p.findall(string)
</code></pre>
<p>Regex101在分解我的regex方面做得比以前更好:</p>
<p><a href="https://i.stack.imgur.com/lxRZm.png" rel="nofollow noreferrer">Link cuz i have no rep</a></p>