【发布时间】:2014-08-24 12:06:38
【问题描述】:
如何用逗号分割字符串(来自文本框)排除双引号中的字符串(不去掉引号),以及其他可能的标点符号标记(例如' . ' ' ; ' ' - ')?
例如如果有人在文本框中输入以下内容:
apple, orange, "baboons, cows", rainbow, "unicorns, gummy bears"
我怎样才能把上面的字符串拆分成下面的(比如说,拆分成一个列表)?
apple
orange
"baboons, cows"
rainbow
"Unicorns, gummy bears..."
感谢您的帮助!
【问题讨论】:
-
如果处理 CSV 文件,最好使用现有的库,例如 LinqToCSV(还有其他库),而不是自己滚动。
-
感谢@hatchet 的建议,但我实际上是在尝试向用户询问搜索词(以查询数据库)。
-
注意:空格不是标点符号,但您的预期结果也会删除空格。不要在你的代码中忘记这一点。并且至少有一个当前答案假设 每个 逗号后跟一个空格,并且实际上在
", "上拆分。请注意,这不适用于apple,orange。另外,当"没有出现在逗号附近时,apple,orange"banana,peach"almond,kiwi应该如何拆分? -
或者......既然你说这是搜索词,为什么要求用户输入逗号呢?用户是否会期望搜索
a b c会搜索到那个确切的短语,而用户必须输入a, b, c来代替搜索这些词?这取决于用户;您可能应该仔细检查这确实是您的用户所期望的,或者更改逻辑。 -
非常感谢您的建议和建议,@hvd!
标签: c# regex string split comma