фиксированная длина в RegEx [дубликат]

Вы можете использовать print df.describe().to_string(), чтобы заставить его отобразить всю таблицу. (Вы можете использовать to_string(), как это для любого DataFrame. Результат describe - это только сам DataFrame.)

8 - это количество строк в DataFrame, содержащее «описание» (потому что describe вычисляет 8 статистических данных, min, max, mean и т. д.).

22
задан Noel De Martin 27 January 2012 в 09:45
поделиться

5 ответов

Многие библиотеки регулярных выражений допускают использование только строгих выражений для поиска за такими утверждениями, как:

  • соответствуют только строки одной и той же фиксированной длины: (?<=foo|bar|\s,\s) (по три символа)
  • соответствуют только строкам фиксированных длин: (?<=foobar|\r\n) (каждая ветвь с фиксированной длиной)
  • соответствуют только строкам с верхней длиной: (?<=\s{,4}) (до четырех повторений)

Причина этих ограничений связана главным образом с тем, что эти библиотеки не могут обрабатывать регулярные выражения вообще или только ограниченное подмножество.

Другая причина может заключаться в том, сложные тяжелые процессы, поскольку они имеют так называемое патологическое поведение (см. также ReDoS ).

См. также раздел о ограничения смотровых утверждений на Regular-Expressions.info .

20
ответ дан Gumbo 5 September 2018 в 08:09
поделиться

Эй, если вы не используете переменную python, посмотрите за утверждение, вы можете обмануть механизм регулярных выражений, ускорив совпадение и начать с помощью \K.

Этот сайт хорошо объясняет это. http://www.phpfreaks.com/blog/pcre-regex-spotlight-k ..

Но в значительной степени, когда у вас есть выражение, которое вы соответствуете, и вы хотите получить все позади, используя \ K, заставит его начать заново ...

Пример:

string = '<a this is a tag> with some information <div this is another tag > LOOK FOR ME </div>'

соответствие /(\<a).+?(\<div).+?(\>)\K.+?(?=\<div)/ приведет к перезапуску регулярного выражения после того, как вы согласитесь с тегом окончания div, чтобы регулярное выражение не включало это в результат. (?=\div) заставит движок получить все перед окончанием тега div

11
ответ дан akostadinov 5 September 2018 в 08:09
поделиться

Большинство двигателей регулярных выражений не поддерживают выражения переменной длины для утверждений lookbehind.

0
ответ дан Amber 5 September 2018 в 08:09
поделиться

То, что сказал Амбер, верно, но вы можете обойти его с помощью другого подхода: группа не скользящих скобок

(?<=this\sis\san)(?:\s*)example

. Это делает фиксированную длину , поэтому он должен работать.

4
ответ дан Bohemian 5 September 2018 в 08:09
поделиться

Вы можете использовать подвыражения.

(this\sis\san\s*?)(example)

Итак, чтобы получить группу 2, «пример», $2 для регулярного выражения или \2, если вы используете строку формата (например, для python's re.sub)

0
ответ дан WizKidd 5 September 2018 в 08:09
поделиться
Другие вопросы по тегам:

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