热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何使用Python正则表达式匹配MATLAB的函数语法?

本文介绍了如何使用Python正则表达式匹配MATLAB的函数语法,包括多行匹配和跨行签名的处理方法。同时,作者还分享了自己遇到的问题和解决方案。

我试图在我们的内部库中找到所有MATLAB函数的所有输入/输出.我是新的(第一次)

regex并且一直在尝试在

Python的re库中使用多行模式.

MATLAB函数语法如下:

function output = func_name(input)

签名可以跨越多行.

我开始使用如下模式:

re.compile(r"^.*function (.*)=(.*)\([.\n]*\)$", re.M)

但我一直得到一个不受支持的模板操作符错误.任何指针都很赞赏!

编辑:

我现在有:

pattern = re.compile(r"^\s*function (.*?)= [\w\n.]*?\(.*?\)", re.M|re.DOTALL)

给出如下匹配的匹配:

function [fcst, spread] = ...

VolFcstMKT(R,...

mktVol,...

calibrate,...

spread_init,...

fcstdays,...

tsperyear)

if(calibrate)

if(nargin <6)

tsperyear &#61; 252;

end

templen &#61; length(R)

我的问题是为什么它给出额外的线而不是在第一个停止&#xff1f;

最佳答案 如果你传递re.T而不是re.M作为re.compile的第二个参数(re.template – 一个当前未记录的条目 – 是打算使用它的那个),你得到的特殊(内部)错误应该会出现,简而言之,模板RE不支持重复或回溯).在调用re.compile之前,你能打印re.M来显示它在代码中的价值吗&#xff1f;

一旦修复了,我们就可以讨论你想要的RE的细节(简而言之&#xff1a;如果输入部分可以包括括号你运气不好,否则re.DOTALL和你的模式的一些重写应该有帮助) – 但修复这个怪异内部错误发生似乎优先考虑.

编辑&#xff1a;诊断出这个错误(根据下面这个评论的Q),继续讨论OP的当前问题&#xff1a;re.DOTALL | re.MULTINE,加上模式结尾处的’$’,加上到处都是贪心匹配(使用.*,而不是.*&#xff1f;表示非贪婪),所有这些一起确保如果正则表达式匹配,它将尽可能广泛地匹配……这正是这个组合所要求的.可能最好用一个特定的例子打开另一个Q&#xff1a;输入是什么,匹配什么,你想要正则表达式匹配什么,等等.



推荐阅读
  • Python中的PyInputPlus模块原文:https ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • python中使用正则表达式的步骤:1.导入re模块:importre2.初始化一个Regex对象:re.compile()3.刚刚创建的 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文讨论了一个关于正则的困惑,即为什么一个函数会获取parent下所有的节点。同时提出了问题是否是正则表达式写错了。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 小程序wxs中的时间格式化以及格式化时间和date时间互转
    本文介绍了在小程序wxs中进行时间格式化操作的问题,并提供了解决方法。同时还介绍了格式化时间和date时间的互相转换的方法。 ... [详细]
  • 巧用arguments在Javascript的函数中有个名为arguments的类数组对象。它看起来是那么的诡异而且名不经传,但众多的Javascript库都使用着它强大的功能。所 ... [详细]
  • 去掉空格的方法——Python工程师招聘标准与实践
    本文介绍了去掉空格的方法,并结合2019独角兽企业招聘Python工程师的标准与实践进行讨论。同时提供了一个转载链接,链接内容为更多相关信息。 ... [详细]
  • 本文介绍了在Python中使用FOR循环实现用户输入错误值3次后终止程序的方法。作者提到了自己对这个问题的困惑和尝试,并给出了解决方案。该方案要求代码必须包含FOR循环,但作者不确定是需要一个FOR循环还是3个FOR循环。最后,作者还给出了一些示例代码来说明如何将英里转换为公里和将英寸转换为厘米。 ... [详细]
  • ***Createdbyjiachenpanon161118.**合法uri*exportfunctionvalidateURL(textval){consturlregex^( ... [详细]
  • 基于php常用正则表达式的整理汇总【PHP】
    后端开发|php教程php,常用正则表达式后端开发-php教程正则表达式3m互助直销系统源码,传感器ubuntu,在家无聊如何爬虫,phpuniquid,康华seo推广lzw如下所 ... [详细]
  • Stringpattern".*"+"a?I'm"+".*";FindIterable<Doc ... [详细]
  • splitjava的简单介绍
    本文目录一览:1、Javasplit方法2、 ... [详细]
author-avatar
5欣欣向荣_135
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有