RegEx:为什么用逗号开始逗号分隔的字符串?

时间:2014-01-30 14:02:02

标签: regex arrays string mongodb delimited-text

我正在阅读how to model tree structures in MongoDB并遇到this article,其中以逗号分隔的路径字符串为例。在示例中,字符串以逗号开头,我想知道是否有一个原因或好处,只是在列表中的每个项目后面都有一个逗号?

我将这篇文章标记为特定于RegEx的原因是,在Java中我不想在开头使用逗号,因为我会使用...将字符串解析为数组...

String[] array = string.split(",");

...在PHP中我会使用...

$array = explode(",", $string);

在其中任何一种情况下,使用逗号开始字符串将导致$array[0]处的空字符串。

提前致谢!

3 个答案:

答案 0 :(得分:2)

指向正则表达式比有条件地执行/^[^,]SomeTopic,*

更容易

答案 1 :(得分:2)

该示例不使用split类型函数,而是执行涉及查看字符串中字符的内容。

“guard”前导分隔符是这样的,如果您想要在单个条目aaa中找到:

",zzzaaa,bbb,aaa,zzz"

如果您搜索,aaa,,则可以搜索zzzaaa,从而避免aaa,的错误匹配。

答案 2 :(得分:1)

在您引用的文章中,这有一个好处,因为使用了正则表达式/,Programming,/。它只是在单词后面之前搜索带逗号的单词。如果你将逗号留在字符串的开头,你还需要处理这个问题,因为RegEx找不到Programming,