Выбор заголовков столбцов в read_table [duplicate]

43
задан Alan Moore 14 June 2010 в 00:49
поделиться

4 ответа

Насколько я знаю, они идентичны. Я думаю, что там может быть несколько двигателей, которые не поддерживают пронумерованный синтаксис, но я не уверен, что. Я смутно вспоминаю вопрос о SO несколько дней назад, когда явное обозначение не работает в Notepad ++.

Единственный раз, когда я буду использовать явно пронумерованное повторение, - это когда повторение больше 1:

  • Точно два: {2}
  • Два или более: {2,}
  • Два-четыре: {2,4}

Я предпочитаю это особенно, когда повторяющийся рисунок больше нескольких символов. Если вам нужно сопоставить 3 числа, некоторым людям нравится писать: \d\d\d, но я бы предпочел написать \d{3}, поскольку он подчеркивает количество повторений. Кроме того, по дороге, если это число когда-либо должно измениться, мне нужно только изменить {3} на {n}, а не повторно анализировать регулярное выражение в моей голове или беспокоиться о том, чтобы испортить его; это требует меньших умственных усилий.

Если эти критерии не выполнены, я предпочитаю сокращение. Использование «явной» записи быстро загромождает шаблон и затрудняет его чтение. Я работал над проектом, в котором некоторые разработчики не слишком хорошо знали регулярное выражение (это не совсем любимая тема для всех), и я видел много {1} и {0,1} случаев. Несколько человек попросят меня пересмотреть свой шаблон, и именно тогда я предлагаю изменить эти события на сокращенную нотацию и сэкономить место, а ИМО улучшить читаемость.

58
ответ дан Ahmad Mageed 25 August 2018 в 07:03
поделиться
  • 1
    +1, я тоже думаю, что стенография лучше, но я также влюблен в вложенные троицы, и я был фактически заорал за это. Я вижу, что некоторые люди могут подумать, что {0,1} «показывает намерение более четко»; чем ?, следовательно, Q. – polygenelubricants 13 June 2010 в 16:47

Я вижу, как, если у вас есть регулярное выражение, которое выполняет много ограниченного повторения, вы можете использовать форму {n,m} для удобства чтения. Например:

/^
 abc{2,5}
 xyz{0,1}
 foo{3,12}
 bar{1,}
 $/x

Но я не могу вспомнить, что когда-либо видел такой случай в реальной жизни. Когда я вижу {0,1}, {0,} или {1,}, которые используются в вопросе, это практически всегда делается из-за незнания. И в процессе ответа на такой вопрос мы также должны предположить, что вместо этого они используют ?, * или +.

И, конечно, {1} - чистый беспорядок. Некоторые люди, похоже, имеют смутное представление о том, что это означает «один и только один». В конце концов, это должно означать что-то , правильно? Почему такой патологически краткий язык поддерживает конструкцию, которая занимает целых три символа и ничего не делает? Его единственным законным использованием, которое я знаю, является выделение обратной ссылки, за которой следует буквальная цифра (например, \1{1}0), но есть и другие способы сделать это.

7
ответ дан Alan Moore 25 August 2018 в 07:03
поделиться

Они эквивалентны (и вы узнаете, доступны ли они, протестировав ваш контекст.)

Проблема, которую я ожидал, - это когда вы не единственный человек, который когда-либо нуждался в работайте с вашим кодом. Regexes достаточно сложно для большинства людей. В любое время, когда кто-то использует необычный синтаксис, возникает вопрос: «Почему они не сделали это стандартным образом? Что они думали, что мне не хватает?»

1
ответ дан dkretz 25 August 2018 в 07:03
поделиться
  • Все они идентичны, если вы не используете исключительный механизм регулярных выражений. Однако не все механизмы регулярных выражений поддерживают нумерованное повторение, ? или +.
  • Если все они доступны, я бы использовал символы, а не цифры, просто потому, что это более интуитивно понятное для меня.
2
ответ дан tiftik 25 August 2018 в 07:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: