加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式获取文本BETWEEN两个字符

发布时间:2020-12-14 06:35:29 所属栏目:百科 来源:网络整理
导读:请仔细阅读:这有点不寻常,你会被诱惑说“不是如何使用正则表达式”或“花花公子,只是使用String.SubString()”等等 我需要编写一个正则表达式(使用一个预先存在的方法),它将匹配文本大写括号,而不是大括号。 例如:“{MatchThisText}”和“La la la {Ma
请仔细阅读:这有点不寻常,你会被诱惑说“不是如何使用正则表达式”或“花花公子,只是使用String.SubString()”等等

我需要编写一个正则表达式(使用一个预先存在的方法),它将匹配文本大写括号,而不是大括号。

例如:“{MatchThisText}”和“La la la {MatchThisText} la la la …”
应该匹配:“MatchThisText”

Someone asked this exact question a year ago,他得到了一堆正则表达式的解决方案,匹配大括号除了“MatchThisText”,导致匹配“{MatchThisText}”,这不是他(或我)需要的。

如果有人可以写一个实际上只匹配大括号的角色的正则表达式,那我真的很感激。它应该允许任何ASCII值,并应该停止在FIRST关闭括号上的匹配。

例如:“{retailCategoryUrl} / {filters}”
应该匹配:retailCategoryUrl和filters
但不匹配:“retailCategoryUrl} / {filters”(除外括号之外的所有内容)

嘿,对我来说这是一个非常棘手的事情,所以请原谅这个问题,如果这对你们有些琐碎。

谢谢!

蟒蛇:
(?<={)[^}]*(?=})

在上下文中:

#!/usr/bin/env python

import re

def f(regexStr,target):
    mo = re.search(regexStr,target)
    if not mo:
        print "NO MATCH"
    else:
        print "MATCH:",mo.group()

f(r"(?<={)[^}]*(?=})","{MatchThisText}")
f(r"(?<={)[^}]*(?=})","La la la {MatchThisText} la la la...")

打印:

MATCH: MatchThisText
MATCH: MatchThisText

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读