Python RegEx 用于括号的精确匹配

编程入门 行业动态 更新时间:2024-10-09 01:16:07
本文介绍了Python RegEx 用于括号的精确匹配的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试解析以下格式的字符串:

I am trying to parse a string which is of the following format:

text="some random string <inAngle> <anotherInAngle> [-option text] [-anotherOption <text>] [-option (Y|N)]"

我想将字符串分成三部分.

I want to split the string in three parts.

  • 只是一些随机字符串"
  • 仅在尖括号中的所有内容.即上面的 inAngle 和 anotherInAngle.
  • 方括号中的所有内容.
  • 如果我使用正则表达式

    re.findall(r'\[(.+?)\]', text)

    它在方括号内提供了我需要的一切.但是,如果我使用带有尖括号的相同 RegEx,

    It gives everything I need within square brackets. If I use the same RegEx with angle brackets however,

    re.findall(r'<(.+?)>', text)

    它给出了尖括号内的文本,也给出了方括号内的文本.例如,上面的文本"位于 [-anotherOption] 内.我不要那个.尖括号匹配的正则表达式应该只从上面返回inAngle"anotherInAngle".它的正则表达式是什么?

    It gives the text which is within angle bracket that are within square brackets too. So for example "text" from above which is within [-anotherOption]. I do not want that. The RegEx for angle bracket match should only return "inAngle" "anotherInAngle" from above. What would be the RegEx for it?

    另外我如何只获得第一部分,即一些随机字符串".这个字符串可以有 2 或 3 个单词

    Also how do I get only the first part i.e "some random string". This string can have 2 or 3 number of words

    推荐答案

    在搜索尖括号中的内容之前,您可以简单地忽略方括号中的所有内容:

    You can simply disregard everything between square brackets before searching for things in angle brackets:

    interm = re.sub(r'\[(.*?)\]', '', text) re.findall(r'<(.+?)>', interm)

    输出

    ['inAngle', 'anotherInAngle']

    然后为了匹配第一部分,匹配[ 或< 之前的所有内容.如果允许字符串随机将这些符号中的任何一个嵌入到第一部分中,那么这将不起作用:

    then for matching the first part, match everything up to [ or <. Granted this wont work if a string is allowed to randomly have either of these symbols unclosed embedded in the first part:

    re.findall(r'([^<\[]+)', text)[0]

    输出

    some random string

    更多推荐

    Python RegEx 用于括号的精确匹配

    本文发布于:2023-11-29 02:27:03,感谢您对本站的认可!
    本文链接:https://www.elefans.com/category/jswz/34/1644932.html
    版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
    本文标签:括号   精确   Python   RegEx

    发布评论

    评论列表 (有 0 条评论)
    草根站长

    >www.elefans.com

    编程频道|电子爱好者 - 技术资讯及电子产品介绍!