Regex 正则表达式以获取两个字符之间的文本
请仔细阅读:这有点不寻常,你可能会说“这不是如何使用正则表达式”或“伙计,只使用String.SubString(),”等等 我需要编写一个正则表达式(使用预先存在的方法)来匹配大括号之间的文本,但不匹配大括号本身 例如:“{MATCHISTEXT}”和“拉拉{MATCHISTEXT}拉拉……”Regex 正则表达式以获取两个字符之间的文本,regex,Regex,请仔细阅读:这有点不寻常,你可能会说“这不是如何使用正则表达式”或“伙计,只使用String.SubString(),”等等 我需要编写一个正则表达式(使用预先存在的方法)来匹配大括号之间的文本,但不匹配大括号本身 例如:“{MATCHISTEXT}”和“拉拉{MATCHISTEXT}拉拉……” 两者应匹配:“匹配此文本” ,他得到了一系列正则表达式的解决方案,除了“MatchThisText”之外,还将匹配大括号,结果是匹配“{MatchThisText}”,这不是他(或我)所需要的 如果有人
两者应匹配:“匹配此文本” ,他得到了一系列正则表达式的解决方案,除了“MatchThisText”之外,还将匹配大括号,结果是匹配“{MatchThisText}”,这不是他(或我)所需要的 如果有人能编写一个只匹配大括号之间字符的正则表达式,我会非常感激。它应该允许任何ASCII值,并且应该在第一个结束括号处停止匹配 例如:“{retailCategoryUrl}/{filters}”
应匹配:零售类别URL和过滤器
但不匹配:“retailCategoryUrl}/{filters”(除外括号外的所有内容) 嘿,这对我来说是一个非常棘手的问题,所以如果这对你们中的一些人来说是微不足道的,请原谅这个问题 谢谢!Python:
(?<={)[^}]*(?=})
您需要一个非贪婪匹配操作符,
*?
,以便在引擎看到一个结束的卷曲括号时立即停止匹配。然后您需要使用括号对括号内的内容进行分组。这应该可以做到:
{(.*?)}
然后,您需要从regexapi中的
组
编号1获取值。(如何获取值取决于您的编程语言/API。)如果您使用的RegExp引擎具有像Python这样的lookahead和lookahead支持,那么您可以使用
/(?适用于.NET正则表达式,但需要从所有匹配项中删除大括号:
var regex=new regex(@“(?)在Javascript中,您会得到一个包含所有匹配项的数组。下面是一个示例,用于处理模板字符串,在css`和`之间处理文本:
yourstring.match(/css`([^}]+).`/gmi)
非常简单(需要分组,但老实说,这是一个非常基本的特征),除非您想正确地考虑嵌套括号(例如,完整的解析器所做的),在这种情况下,这是根本不可能的(除了使用那些非ReGEX-Y扩展之外,有些实现,例如Net)。。我们需要更多的上下文,因为解决方案可能会涉及“向后看”和“向前看”操作符,所以取决于您使用的正则表达式的方言。{(\w+)}
-括号表示一个组,您可以从中获取内容。从字面上说,您链接到的帖子中有答案!只需使用{([^}]*}这将匹配整个短语,但该匹配中的第1组是您所追求的。大家好。感谢大家的回复。我对Regex是新手。当我读到delnan评论中的“分组”一词时,我有了AHA!我需要的时刻。我使用了以下Regex:{(?.*?}我可以点击C#:Regex Regex=new Regex(“{(?.*?}”);var matches=Regex.matches({matchThistText}”);foreach(Match-Match-in-matches){var-key=Match.Groups[1].Value;//处理匹配项做些什么}注意,有时需要使用类似于:(?)的方法来转义{/code>?
{(.*?)}
yourstring.match(/css`([^}]+).`/gmi)