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

前端之家收集整理的这篇文章主要介绍了正则表达式获取文本BETWEEN两个字符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请仔细阅读:这有点不寻常,你会被诱惑说“不是如何使用正则表达式”或“花花公子,只是使用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

猜你在找的正则表达式相关文章