C# 获取{和}之间的子字符串
假设我有这个字符串作为输入 字符peer0_0[]={0x17,0x03,0x03,0x00,0xa2,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xc3,0xb3,0xee,0x9a,0x37,0xb6,0xbf, 0x8f、0x89、0x58、0xe4、0x8d、0x8a、0x0b、0xe8、0x98、0xba、0x49、, 0x0f、0x45、0x7c、0x93、0x65、0x7b、0x15、0x78、0xde、0xe2、0x9b、, 0xd2、0x9b、0x26、0x27、0x4f、0x3d、0x1f、0xf4、0x4e、0x0e、0xcf、, 0xa8、0x60、0xed、0x45、0x2f、0x63、0xeb、0x4e、0xcc、0x55、0x6f、, 0x2f、0x57、0x0e、0x7b、0x7f、0xd1、0xcb、0xc9、0x87、0x06、0x9f、, 0x81、0x8e、0x37、0x80、0xf2、0x9f、0xa0、0xa4、0x06、0x75、0x06、, 0x45、0x4c、0x21、0x51、0x1a、0x6a、0x4b、0x26、0x9c、0xdf、0xee、, 0xbc,0x03,0xee,0x31,0xa7,0x2a,0x46,0xea,0x91,0x91,0x6b, 0x6f、0xc1、0xa6、0xf7、0x3e、0x16、0x98、0x63、0x67、0x86、0x2f、, 0xfb、0x14、0x8e、0xd6、0xcd、0x14、0x2c、0xf7、0xbf、0x91、0x18、, 0x89、0xaf、0xad、0xdf、0x09、0x2e、0xc0、0x20、0x1c、0x27、0xf9、, 0xba、0xf4、0xc7、0xf2、0x7e、0x0d、0x1d、0x64、0x4b、0x85、0x7e、, 0xd7、0x0f、0xeb、0x24、0x2f、0x3a、0x61、0x3d、0x5e、0x65、0x75、, 0x81、0x34、0xf6、0x00、0x2c} 我想提取C# 获取{和}之间的子字符串,c#,regex,string,C#,Regex,String,假设我有这个字符串作为输入 字符peer0_0[]={0x17,0x03,0x03,0x00,0xa2,0x00,0x00,0x00, 0x00,0x00,0x00,0x01,0xc3,0xb3,0xee,0x9a,0x37,0xb6,0xbf, 0x8f、0x89、0x58、0xe4、0x8d、0x8a、0x0b、0xe8、0x98、0xba、0x49、, 0x0f、0x45、0x7c、0x93、0x65、0x7b、0x15、0x78、0xde、0xe2、0x9b、, 0xd2、0x9b、0x
{
和}
当然,我可以扫描字符串,直到我检测到{
,然后直到我检测到}
,然后在这些索引之间执行子字符串,但必须有一种更简单的方法。
我怎么做?我想我可能需要使用正则表达式,但我无法创建一个合适的正则表达式
注意:字符串输入可能包含更多这样的示例,我的意思是在>之后代码>在Q输入流中将有字符peer0_1[]={…
等等
如果你想知道这个输入是从哪里来的,它是一个流内容表单wireshark
我想提取{和}之间的子字符串
在正则表达式下面尝试并从索引1中获取匹配的组
{([^}]*)
说明:
NODE EXPLANATION
--------------------------------------------------------------------------------
{ '{'
( group and capture to \1:
[^}]* any character except: '}' (0 or more
times (matching the most amount
possible))
) end of \1
编辑
下面的正则表达式也将返回@zx81在注释中建议的相同结果,而不使用捕获组
(?<={)[^}]*
(?为什么要这样做?在您的C程序中,您只需使用peer0\u 0
!您的问题不清楚!为什么要解析上面的C初始化代码?您至少可以为您使用的语言(或regex方言)添加一个标记我正在使用c#我忘了提到这一点,我解释说我的尝试是扫描{和}并在索引之间使用子字符串。我认为您正在寻找一个类似于
[{][^{}]*[}]
的正则表达式。感谢abrish,这是可行的,但我需要正则表达式来排除{和}从结果来看,我需要它们之间的联系非常感谢你正是我所需要的,我在哪里可以学习正则表达式,以便下次我自己可以这样做?访问