Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式以获取两个字符之间的文本_Regex - Fatal编程技术网

Regex 正则表达式以获取两个字符之间的文本

Regex 正则表达式以获取两个字符之间的文本,regex,Regex,请仔细阅读:这有点不寻常,你可能会说“这不是如何使用正则表达式”或“伙计,只使用String.SubString(),”等等 我需要编写一个正则表达式(使用预先存在的方法)来匹配大括号之间的文本,但不匹配大括号本身 例如:“{MATCHISTEXT}”和“拉拉{MATCHISTEXT}拉拉……” 两者应匹配:“匹配此文本” ,他得到了一系列正则表达式的解决方案,除了“MatchThisText”之外,还将匹配大括号,结果是匹配“{MatchThisText}”,这不是他(或我)所需要的 如果有人

请仔细阅读:这有点不寻常,你可能会说“这不是如何使用正则表达式”或“伙计,只使用String.SubString(),”等等

我需要编写一个正则表达式(使用预先存在的方法)来匹配大括号之间的文本,但不匹配大括号本身

例如:“{MATCHISTEXT}”“拉拉{MATCHISTEXT}拉拉……”
两者应匹配:“匹配此文本”

,他得到了一系列正则表达式的解决方案,除了“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)