正则表达式分裂一个字符串

时间:2011-10-19 17:34:34

标签: c# regex vba

我在我的机智目的(成为正则表达式新手)。我需要像这样分割一个字符串

"abc","","av,as","hello world","nice,name"

'abc'
'\blank\'
'av,as'
'hello world'
'nice,name'

使用c#或excel vbs,有人可以帮助使用正则表达式吗?

3 个答案:

答案 0 :(得分:2)

我认为你应该使用

"(.*?)",?

正则表达式

示例:http://regexr.com?2uvk8

答案 1 :(得分:2)

相当简单:

"(\\.|[^"\\])*"

将如图所示:

Comma-delimited list of quoted strings

它会允许转义引号和引号之间可能的空格,并且如果您需要,它是POSIX兼容的!

修改

我应该注意到,基本上不可能从正则表达式引擎中直接获取直接引用的'\blank\',但从检查它的代码获取它是相对简单的。匹配的长度,如果长度少于三个字符则替换它(如果有一个空字符串,匹配将是""

结束编辑

请问你是否希望我打破这种表达方式!

答案 2 :(得分:0)

(?:"((?:[a-z])+(?:[ ,a-z]+))")?("")? 

可以使用

如果第1组和第2组是emtpy,则如果第1组的值与字符串匹配,则匹配,,如果第2组的值匹配,则表示匹配emtpy双引号""

但是如上所述,你应该使用解析器来提高速度和准确性......