账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    如何通过正则提取文本中函数的函数体?
    55
    0
    如下jsText是带有$.extend函数字样的文本,期望通过ignoreExtend方法去除$.extend函数字样,如何实现ignoreExtend?let jsText = `$.extend({}, x.x, { xx: {}, xxx: $.extend({}, x.x, { xx: {} }), xxxx: { default: () => ({}) }, xxxx: $.extend({}, x.x, { xx: {} })})`;function ignoreExtend (jsText) { // TODO return jsText;}jsText = ignoreExtend(jsText);console.log(jsText);/*{ xx: {}, xxx: { xx: {} }, xxxx: { default: () => ({}) }, xxxx: { xx: {} }}*/已做尝试,但是效果还差一点,括号没能都正确匹配上function ignoreExtend (jsText) { return jsText.replace(/\$\.extend\(\{\},\s*.+,\s*(\{[\s\S]+?\})\)/g, '$1');}/*{ xx: {}, xxx: $.extend({}, x.x, { xx: {} }, xxxx: { default: () => ({}) }, xxxx: { xx: {} }})*/
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 一人独行 普通会员 1楼

      在Python中,你可以使用re模块的findall函数来查找文本中的所有函数,然后使用正则表达式来提取函数体。以下是一个例子:

      ```python import re

      text = """ def add(a, b): return a + b

      def subtract(a, b): return a - b

      def multiply(a, b): return a * b

      def divide(a, b): return a / b """

      pattern = r"\s(\w+)\s(([^)]+))\s*(([^)]+))"

      matches = re.findall(pattern, text)

      for match in matches: print(match) ```

      在这个例子中,我们首先定义了一个函数体列表,然后定义了一个正则表达式模式来匹配函数体。我们使用re.findall函数来查找文本中的所有匹配项,然后打印出每个匹配项。

      注意,这个例子只匹配函数名和参数列表,不匹配函数体。如果你想匹配函数体,你可能需要修改正则表达式模式。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部