RegEx删除逗号之外的内容

时间:2013-07-29 12:01:25

标签: regex

好吧,所以我有一个数据库,你可以通过这种方式获取信息:

  

ID,显示名称,喜欢蛋糕,喜欢咖啡,喜欢狗

因此,如果你得到这些信息,就会显示出类似的信息:

  

1,匿名,1,0,1

现在它不是很受欢迎,所以我想向那些已经回答过这个问题的人们展示一下,所以我希望“1,!匿名!,1,0,1”(除了!之外的任何东西)都没有了。我环顾四周,找到了一个RegExp代码,可以删除引号之外的东西,但它相当难,而且我很不耐烦地将所有显示名称都放在引号中。

因此,如果有一个可以删除数字的RegExp,那么我可以将用户名放上,这样会很好吃。

2 个答案:

答案 0 :(得分:0)

嗯,你可以这样做:

 Replae '^[^,]+([^,]+).*' With '$1'

当然,您的语言看起来如何,可能会有所不同。

但在您的情况下,这看起来像CSV,因此在这种情况下解析CSV文件更容易吗?例如。在PowerShell中你可以做到

Import-Csv foo.csv | select 'Display name'

同样适用于内置某种解析内容的其他语言。此外,大多数其他选项可能会因输入而中断,因为CSV中的字段也可能包含逗号,这会破坏正则表达式和天真的拆分方法。

答案 1 :(得分:0)

您可以拆分数据库结果字符串,然后获取相关的数组索引。

string dbString = "1,anonymous,1,0,1";
string username = dbString.Split(',')[1];

//value of username will be "anonymous"