在 C# Regex 中检索括号之间的字符串
Retrieve string between parathesis in C# Regex
我想知道我是否可以突出显示{任意字符串}
之间的字符串
这是我试过的。
^{(.*)}$
这行得通,但这种情况下也检索括号
{hi}
但是我只想检索字符串,而不是括号。
{hi}
示例:
hell(?=o) 试试这个语法,当它后面跟着 "o" 而不是 hello
时,它将完全匹配 hell 词
就这样,我想匹配字符串,当它在左括号之后和右括号之间而不是括号之间开始时。
谁能指导我,我们如何才能忽略括号并只检索字符串?
由于此查询涉及自定义控件,我需要使用正则表达式解决
备注
更多信息见截图
输出
预计
感谢任何帮助。
无论出于何种原因您不能使用组 - 在您的示例中您已经使用了 lookahead。通过在模式的开头添加回顾来完成模式。
(?<={)[^}]*(?=})
[^}]*
匹配 any amount of characters, that are not }
如果前面有 {
如果后面有 }
.
由于您似乎特别想检索花括号(而不是圆括号)之间的值,因此您需要执行正则表达式匹配 - 即分组。
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
现在,我承认这不是最直观的方法;但是,它确实可以完成工作。 Full Match returns '{hi}',而 Group 1 returns 您要查找的值 'hi'。
您可以使用这个正则表达式:
(?<={)(.*)(?=})
查看我在 regexstorm.net
上的示例
请务必查看有关 Lookahed 和 Lookbacks 的 post。 Regex lookahead, lookbehind and atomic groups
I want to know if I can highlight strings between {any string}
在正则表达式领域,匹配和捕获以及基本分组。
您想要匹配 {hi}
,但您想要 hi
进入 捕获 组。这是使用 ( )
构造模式完成的。一场比赛可以容纳不同组中的所有三个人。
记住这些事项。
Groups[0]
是总是整场比赛
Groups[1-N]
是指定 ( )
构造时的单独捕获。
- 模式
{Hi}
将匹配“{Hi}”,它可以在 Group[0]
的整个匹配中找到。
- 模式
{(Hi)}
也将匹配 Group[0]
中的“{Hi}”,但它会将 "hi" 捕获到 Group[1]
.
winforms中文本高亮的过程我不会说。
我想知道我是否可以突出显示{任意字符串}
之间的字符串这是我试过的。
^{(.*)}$
这行得通,但这种情况下也检索括号
{hi}
但是我只想检索字符串,而不是括号。
{hi}
示例:
hell(?=o) 试试这个语法,当它后面跟着 "o" 而不是 hello
时,它将完全匹配 hell 词就这样,我想匹配字符串,当它在左括号之后和右括号之间而不是括号之间开始时。
谁能指导我,我们如何才能忽略括号并只检索字符串?
由于此查询涉及自定义控件,我需要使用正则表达式解决
备注
更多信息见截图
输出
预计
感谢任何帮助。
无论出于何种原因您不能使用组 - 在您的示例中您已经使用了 lookahead。通过在模式的开头添加回顾来完成模式。
(?<={)[^}]*(?=})
[^}]*
匹配 any amount of characters, that are not }
如果前面有 {
如果后面有 }
.
由于您似乎特别想检索花括号(而不是圆括号)之间的值,因此您需要执行正则表达式匹配 - 即分组。
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
现在,我承认这不是最直观的方法;但是,它确实可以完成工作。 Full Match returns '{hi}',而 Group 1 returns 您要查找的值 'hi'。
您可以使用这个正则表达式:
(?<={)(.*)(?=})
查看我在 regexstorm.net
上的示例请务必查看有关 Lookahed 和 Lookbacks 的 post。 Regex lookahead, lookbehind and atomic groups
I want to know if I can highlight strings between {any string}
在正则表达式领域,匹配和捕获以及基本分组。
您想要匹配 {hi}
,但您想要 hi
进入 捕获 组。这是使用 ( )
构造模式完成的。一场比赛可以容纳不同组中的所有三个人。
记住这些事项。
Groups[0]
是总是整场比赛Groups[1-N]
是指定( )
构造时的单独捕获。- 模式
{Hi}
将匹配“{Hi}”,它可以在Group[0]
的整个匹配中找到。 - 模式
{(Hi)}
也将匹配Group[0]
中的“{Hi}”,但它会将 "hi" 捕获到Group[1]
.
winforms中文本高亮的过程我不会说。