请仔细阅读:这有点不寻常,你会被诱惑说“不是如何使用正则表达式”或“花花公子,只是使用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