求问下面一段字符串如何使用C#使用正则表达式拆分成两个字符串 5C

需要拆分的字符串:
SSID 1 : AAAA
Network type : 结构
BSSID 1: b0:4e:26:ea:03:da
信号 : 80%

SSID 2 : BBBB
Network type : 结构
BSSID 1: b0:4e:26:ea:03:dd
信号 : 40%
BSSID 2: b0:4e:26:ea:03:dc
信号 : 60%

希望拆分成两个字符串,分别是以SSID 1开头和SSID 2开头的字符串。

4个回答

方法很多,就选择一种直接面向结果的方法吧。图片说明

sinat_25185707
兔子17号 应该是我提问说的不够清楚,需要分割的字符串可能不止包含两个SSID,可能还会有SSID3、SSID4....SSID100,所以我希望使用正则表达式的方式进行分割。
大约 2 年之前 回复
caozhy
贵阳老马马善福专业维修游泳池堵漏防水工程 正解,lz可以采纳了。
2 年多之前 回复

随便使用正则表达式去匹配
参考正则:SSID[\S\s]*?%
Regex regex = new Regex(@"SSID[\S\s]*?%");
string str = @"SSID 1 : AAAA
Network type : 结构
BSSID 1: b0:4e:26:ea:03:da
信号 : 80%
SSID 2 : BBBB
Network type : 结构
BSSID 1: b0:4e:26:ea:03:dd
信号 : 40%
BSSID 2: b0:4e:26:ea:03:dc
信号 : 60%";
var matchs = regex.Matches(str);
List lstMatchStr = new List();
foreach(Match match in matchs)
{
if (match.Success)
{
lstMatchStr.Add(match.Value);
}
}

只要在字符串前面加上@转意以下,然后再用正则表达式正常拆分就行了。

分享一下自己最后使用的方案吧:
待分割字符串:
SSID 1 : aaaaaaa
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP
BSSID 1 : 06:18:d6:c1:97:df
信号 : 72%
无线电类型 : 802.11n
频道 : 1
基本速率(Mbps) : 1 2 5.5 6 11 12 24
其他速率(Mbps) : 9 18 36 48 54
BSSID 2 : 92:2a:a8:d5:ca:26
信号 : 28%
无线电类型 : 802.11n
频道 : 157
基本速率(Mbps) : 6 12 24
其他速率(Mbps) : 9 18 36 48 54
BSSID 3 : 16:18:d6:c2:97:df
信号 : 48%
无线电类型 : 802.11n
频道 : 157
基本速率(Mbps) : 6 12 24
其他速率(Mbps) : 9 18 36 48 54

SSID 2 : bbbbbbb
Network type : 结构
身份验证 : WPA2 - 个人
加密 : CCMP
BSSID 1 : 50:c7:bf:44:28:d3
信号 : 68%
无线电类型 : 802.11n
频道 : 1
基本速率(Mbps) : 1 2 5.5 11
其他速率(Mbps) : 6 9 12 18 24 36 48 54

分割方式:
                    Regex regSsid = new Regex("SSID.+\r\n.+Network type.+\r\n.+身份验证.+\r\n.+加密.+\r\n(.+BSSID \\d+.+\r\n.+信号.+\r\n.+无线电类型.+\r\n.+频道.+\r\n.+基本速率.+\r\n.+其他速率.+\r\n)+");
        MatchCollection matchsSsid = regSsid.Matches(str);

                    这种方式可以实现我说的那种分割。
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问