RegEx: Зачем начинать запятую с запятой?

Я читал как смоделировать древовидные структуры в MongoDB и наткнулся на в этой статье, в которой проиллюстрирована строка пути с разделителями-запятыми. В примере строка начинается с запятой, и мне было интересно, была ли причина или польза для этого, связанного с просто запятой после каждого элемента в списке?

Я пометил это сообщение как специфическое для RegEx, в Java я бы не хотел, чтобы запятая начиналась, потому что я бы разбирал строку в массиве, используя...

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

... и в PHP я бы использовал...

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

В любом из этих случаев начало строки с запятой приведет к пустой строке в $array[0].

Спасибо заранее!

3 ответа

В примере не используется функция типа split, а она делает что-то, что предполагает просмотр символов в строке.

"Защитный" ведущий разделитель таков, что если вы хотите найти одиночную запись aaa в:

",zzzaaa,bbb,aaa,zzz"

вы можете найти ,aaa,, чтобы избежать ложного соответствия zzzaaa, если вы искали aaa,.


Легче в индексе регулярное выражение, чем условно выполнение /^[^,]SomeTopic,*


В вашей ссылочной статье это имеет преимущество, поскольку используется регулярное выражение /,Programming,/. Он просто ищет слова с запятой до и после слова. Если вы оставите запятую в начале строки, вам также потребуется обработать эту проблему, потому что Programming, не будет найден RegEx.

licensed under cc by-sa 3.0 with attribution.