检索C#正则表达式中并列关系之间的字符串
我想知道是否可以突出显示{任何字符串之间的字符串 这是我试过的检索C#正则表达式中并列关系之间的字符串,c#,regex,windows-forms-designer,regex-lookarounds,C#,Regex,Windows Forms Designer,Regex Lookarounds,我想知道是否可以突出显示{任何字符串之间的字符串 这是我试过的 ^{(.*)}$ 这是可行的,但这个案例也检索到了偏执 {hi} 但是,我只想检索字符串,而不是括号 {你好} 示例: 地狱(?=o)试试这个语法,它将完全匹配地狱词,后面跟“o”而不是hello 就像这样,我想匹配字符串,当它在开括号之后开始,在闭括号和非括号之间 谁能告诉我,我们怎么能忽略括号而只检索字符串呢 由于这个查询涉及到自定义控件,我需要使用正则表达式的解决方案 注意 有关更多信息,请参见屏幕截图 输出 预期的 感
^{(.*)}$
这是可行的,但这个案例也检索到了偏执
{hi}
但是,我只想检索字符串,而不是括号
{你好}
示例:
地狱(?=o)试试这个语法,它将完全匹配地狱词,后面跟“o”而不是hello
就像这样,我想匹配字符串,当它在开括号之后开始,在闭括号和非括号之间
谁能告诉我,我们怎么能忽略括号而只检索字符串呢
由于这个查询涉及到自定义控件,我需要使用正则表达式的解决方案
注意
有关更多信息,请参见屏幕截图
输出
预期的
感谢您的帮助。无论出于何种原因,您都不能使用组-在您的示例中,您已经使用了组。只需在模式的开头添加一个lookback来完成模式
(?<={)[^}]*(?=})
(?无论出于何种原因,您都不能使用组-在您的示例中,您已经使用了。只需在模式的开头添加一个lookback来完成模式
(?<={)[^}]*(?=})
(?由于您似乎特别希望检索大括号(而不是括号)之间的值,因此需要执行正则表达式匹配-即分组
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
现在,我承认这不是最直观的方法;但是,它肯定能完成任务。完全匹配返回“{hi}”,而第1组返回您要查找的“hi”值。因为您似乎特别想要检索大括号(而不是括号)之间的值,您将需要执行正则表达式匹配-即组
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
现在,我承认这不是最直观的方法;但是,它肯定能完成任务。完全匹配返回{hi},而组1返回您要查找的值“hi”。您可以使用以下正则表达式:
(?您可以使用此正则表达式:
(?
我想知道是否可以突出显示{any string}之间的字符串
在正则表达式领域中,匹配和捕获与基本分组之间存在差异
您希望匹配{hi}
,但希望将hi
放入捕获组。这是使用()
构造模式完成的。匹配可以包含不同组中的所有三个组
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
记住这些事项
组[0]
始终是整场比赛
组[1-N]
是在指定()
构造时的单个捕获
- 模式
{Hi}
将与“{Hi}”匹配,该匹配可以在组[0]
的整个匹配中找到
- 模式
{(Hi)}
也将匹配组[0]
中的“{Hi}”,但它将把“Hi”捕获到组[1]
中
我不能谈论winforms中突出显示文本的过程
我想知道是否可以突出显示{any string}之间的字符串
在正则表达式领域中,匹配和捕获与基本分组之间存在差异
您希望匹配{hi}
,但希望将hi
放入捕获组。这是使用()
构造模式完成的。匹配可以包含不同组中的所有三个组
string phrase = "{hi} my name is Chris.";
Regex exp = new Regex(@"\{(.*?)\}");
string match = exp.Match("{hi}").Groups[1].Value;
记住这些事项
组[0]
始终是整场比赛
组[1-N]
是在指定()
构造时的单个捕获
- 模式
{Hi}
将与“{Hi}”匹配,该匹配可以在组[0]
的整个匹配中找到
- 模式
{(Hi)}
也将匹配组[0]
中的“{Hi}”,但它将把“Hi”捕获到组[1]
中
我无法说明在winforms中突出显示文本的过程。请澄清您的具体问题,或添加其他详细信息,以突出显示您所需的内容。由于目前编写的内容,很难准确地说出您的要求。请参阅页面以获取澄清此问题的帮助question@PedroLobito更新了我的要求。请让我知道,如果它对您有帮助,您正在询问如何使在线regex测试仪按预期工作。这是一种错误的方法-使用您的regex内部代码,然后提问。请注意,您已经在使用捕获组-这就足够了,只需使用Match.Groups[1]在C#中使用.Value
。或者如果您使用$1
。如果没有C#代码,问题就不清楚了。突出显示您的意思是word
?伙计们,为了更好地解释,我使用了online regex tester。示例:hell(?=o)尝试一下这种语法,当它后面跟“o”时,它将与hell单词完全匹配。就像那样,我想匹配字符串,当它在开括号后和闭括号之间开始时。请澄清您的具体问题或添加其他详细信息,以突出显示您所需的内容。由于目前编写的内容,很难准确地说出您要问的内容。请参阅页面以获取澄清此问题的帮助question@PedroLobitoU更新了我的要求。请让我知道,如果这对你有帮助的话。你问的是如何让在线regex测试仪按预期工作。这是一种错误的方法-使用你的regex内部代码,然后问一个问题。注意,你已经在使用一个捕获组-这就足够了,只需使用Match.Groups[1]在C#中使用.Value
。或者,如果您替换,只需使用$1
。如果没有C#code,问题就不清楚了。突出显示您的意思是word
?伙计们,我使用