我有一个正则表达式应该*拾取到结果字符串:
输入字符串:
Vmid Name File Guest OS Version Annotation
3 TinyCore Linux [datastore1] TinyCore Linux/TinyCore Linux.vmx otherLinuxGuest vmx-08
4 Debain6 [datastore1] Debain6/Debain6.vmx ubuntu64Guest vmx-08
正则表达式:
[]][ A-Za-z /.]+.vmx [ ]
正则表达式匹配字符串的下一部分:
] TinyCore Linux/TinyCore Linux.vmx
但也应匹配:
] Debain6/Debain6.vmx
我的代码如下:
private void regexTest_Click(object sender, EventArgs e)
{
Regex regex = new Regex("[]][ A-Za-z /.]+.vmx [ ]");
MatchCollection match = regex.Matches(input);
foreach (Match matchvalue in match)
{
MessageBox.Show(matchvalue.ToString());
}
答案 0 :(得分:2)
您丢失了数字\d
你的正则表达式:[]][\dA-Za-z /.]+.vmx [ ]
和我的升级\][\dA-Za-z\s/.]+\.vmx
答案 1 :(得分:0)
尝试使用类似的东西,下面的表达式将匹配]和.vmx
之间的每个类型字符\](.+?)\.vmx
或类似的模式] [word] / [word] .vmx尝试
\](.+)?\/(.+?)\.vmx
或一般(。)替换为特定匹配字符
\]([a-z0-9A-Z-_\s\/]+)?\.vmx
您可以通过http://gskinner.com/RegExr/
轻松测试正则表达式输出