Python 代码块的正则表达式?

2024-02-13

如何创建一个可以匹配行开头以及以 tab 开头的所有以下行的正则表达式?例如

not keyword ;
    not this line ;
keyword and random text ;
    this line ;
    this line ;
    and this line ;
not keyword ;

我希望能够匹配从 '^keyword' 到 'and this line ;'

谢谢。

编辑。我正在尝试删除我不需要的节点的 Maya 的 MEL 代码。实际的代码如下所示,有多行带有制表符缩进的 setAttr。

createNode mentalrayOptions ......... ;
    setAttr .............. ; 

我将整个文本加载到 1 个变量中

with open( 'path/to/file', 'r') as content_file:
    content = content_file.read()

我尝试的正则表达式似乎正确找到了起点,但我无法正确找到终点。它要么匹配 1 行,根本不匹配任何内容,要么一直匹配到文件末尾。

match = re.search( r'(^createNode mentalrayOptions)(.*\n)(^\t)' ,content, flags=re.DOTALL)

你可以使用这样的东西:

^keyword.*(?:\n^\t.*)*

Flags:

  • m对于多行,所以^ works.
  • not s so .不匹配换行符。

解释:

  • ^keyword- 该行的开头为keyword
  • .*- 匹配直到行尾
  • (?:\n^\t.*)*- 其中每一个都与另一条以制表符开头的行匹配。请注意,我们必须匹配换行符,因此如果您有其他行分隔符,请小心。

工作示例:http://www.regex101.com/r/jP8yH0 http://www.regex101.com/r/jP8yH0

当然,如果你想匹配real代码块,这可能很快就会失败 - 例如通过注释或字符串文字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 代码块的正则表达式? 的相关文章

随机推荐

  • 如何从打字稿访问垫菜单触发器

    我有以下 html
  • 如何以编程方式打开 Android Q 中的“设置”面板?

    As per 安卓Q新功能 有一个内联设置面板显示关键连接设置 使用户可以修改不同的连接设置 例如飞行模式 wifi 音量 NFC 和互联网连接 我怎样才能打开它以编程方式设置面板从我的应用程序 就像下面的屏幕截图一样 使用 Android
  • sum 函数如何在 python 中与 for 循环一起工作[重复]

    这个问题在这里已经有答案了 我在python中使用sum函数 我很清楚它的一般结构sum 可迭代 开始 但我无法理解以下代码背后的逻辑 test sum 5 for i in range 5 print output test 输出 25
  • Android:addTextChangedListener 无法正常工作

    我想对用户在其中输入的内容做出反应EditText所以我用了addTextChangedListener方法 当用户输入单个字符时 代码为onTextChanged正在运行 一切正常 例如 如果用户输入 a 那么onTextChanged将
  • ggplot2 以轴单位指定点大小

    我想从一个简单的数据集中绘制一个矩形内有大点的图 我想在不同方面显示可能有多个结果 问题是矩形的大小 使用geom rect 以轴单位定义 而size的论证geom point是在其他一些单位 因此 矩形上的点的相对大小根据面的数量而变化
  • 浏览器后退按钮处理

    我正在尝试处理浏览器后退按钮事件 但找不到任何解决方案 我想询问用户是否使用 确认框 单击浏览器后退按钮 如果他选择 确定 我必须允许后退按钮操作 否则我必须停止后退按钮操作 任何人都可以帮助我实现这一点 如果按下后退按钮 则警告 确认用户
  • 在 XElement.Load 上保留 \r\n

    有没有办法可以在 XElement Load 上保留 r n TextReader reader new StringReader rawInputString rawInputString is just text in html for
  • 关于清单中的全屏和无标题栏

    我想将我的应用程序设置为全屏视图 我想到将其设置在个人活动中使用FullScreen and NoTitlebar 但我想在整个应用程序的清单 XML 文件中设置它 而不是每个活动 这可能吗 帮助我 谢谢 要将您的应用程序或任何单独的活动显
  • 如何通过单击 ASP.NET 中的图像按钮来传输 zip 文件?

    我的问题 当用户单击 aspx 页面上的图像按钮时 代码隐藏会创建一个 zip 文件 然后我尝试将该 zip 文件流式传输给用户 为了流式传输文件 我使用以下代码 FileInfo toDownload new FileInfo fullF
  • C# 8 switch 表达式不够“智能”

    这段代码很简单 只是一个普通的开关 bool isSomething strSomething switch I gt true D gt false gt null 但是 编译器给了我以下错误 CS0037 无法将 null 转换为 bo
  • python中的嵌套正则表达式

    在 Perl 中我可以这样做 number qr zero one two three four five six seven eight nine ix foo qr quantity s number ix 我的实际正则表达式有很多行
  • 如何在浏览器中调试angularjs的$rootScope对象

    当 AngularJS 应用程序加载到浏览器中时 有没有办法对其进行调试 IE 我希望得到 rootScope我当前的应用程序 我该怎么做呢 巴塔朗 1 另外 您可以通过从控制台执行以下命令来获取 DOM 中任何元素的范围 angular
  • 根据列表框尺寸调整列表框内容的大小

    我正在尝试根据列表框本身调整列表框内容的大小 这是在 WPF 中完成的 关于这如何可能的任何想法 我认为当您说 调整大小 时 您的意思是您想要在两个方向上拉伸项目 要采用默认的列表框并水平拉伸项目 您需要做的是
  • C++ 求两个向量之间的差异

    假设你有 2 个向量 vector
  • 如何在 Eclipse 中找到可重写的方法

    public class test2 extends ListActivity 例如 我想找到 ListActivity 中可以重写的方法是什么 在 eclipse 中找到这个的快捷键是什么 如何通过 eclipse intellisens
  • 如何将 fancybox 绑定到动态添加的元素?

    我使用 jquery fancybox 1 3 4 作为弹出表单 但我发现 fancybox 无法绑定到动态添加的元素 例如 当我向当前文档添加 html 元素时 像这样 首先我使用 jquery 将一个元素附加到主体 document b
  • Jackson - 将内部对象列表反序列化为更高级别的列表

    使用 Spring Boot 和 Jackson 如何将包装 内部列表直接反序列化为外层列表 例如 我有 transaction items item itemNumber 193487654 itemDescription Widget
  • 从 JavaScript 手动触发 iPhone/iPad/iPod 键盘

    我正在开发一个 HTML 代码编辑器 使用简单的 DIV 并捕获事件 当我在 iPad 上使用它时 键盘永远不会弹出 因为从技术上讲我并不处于可编辑字段中 有没有办法以编程方式告诉 iPad 我需要键盘 如果您的代码是通过用户操作启动的某些
  • 将 pop() 与 JavaScript 关联数组结合使用

    我怎样才能在JS中做类似下面的事情 我想模仿 pop 在对象而不是数组上 var deck cardK 13 cardQ 12 cardAJ 11 var val deck pop console log Key val key conso
  • Python 代码块的正则表达式?

    如何创建一个可以匹配行开头以及以 tab 开头的所有以下行的正则表达式 例如 not keyword not this line keyword and random text this line this line and this li