R: регулярное выражение для определения номеров в пределах фрагмента HTML - PullRequest
0 голосов
/ 07 марта 2019

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

Я хочу научиться работать с R и начать с простого примера -> Извлечение таблицы с сайта Википедии.

Мне удалось загрузить определенную страницу и определить интересующие меня разделы HTML:

<td style="text-align:right">511.000.000\n</td>

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

pattern<-"\\d*\\.\\d*\\.\\d*\\.\\d*\\."

Я также пробовал другие варианты, но ни один из них не нашел число в HTML-коде. Я хотел оставить образец открытым, потому что числа могут быть сотнями, тысячами, миллионами, миллиардами.

  1. Мои вопросы: номер в HTML-коде, может быть
    необходимо включить некоторый код для нечислового кода (который должен не извлекается ...)
  2. Какая будет правильная версия для
    шаблон для правильного определения номера?

Большое спасибо за вашу поддержку !!

Ответы [ 2 ]

0 голосов
/ 07 марта 2019

Так много звезд подразумевает много отступлений.
Еще одно замечание: использование \\d* будет соответствовать более 3 цифрам в любой группе, а также группе без цифр.

Предполагая, что ваши числа всегда целые числа, отформатированные с использованием . в качестве разделителя тысяч, вы можете использовать следующее: \\d{1,3}(?:\\.\\d{3})* (обратите внимание на использование не захватывающей групповой конструкции (?:...) - подразумевающей использование perl = TRUE в аргументах, как упомянуто в Регулярных выражениях, используемых в R ).

0 голосов
/ 07 марта 2019

Присмотритесь к своему регулярному выражению.Вы предполагаете, что число будет иметь 4 периода (\\.), но в вашем собственном примере есть только два периода.Это не будет соответствовать, потому что, хотя звездочка помечает \\d как необязательный (ноль или более), периоды не помечаются как необязательные.Если вы добавите модификатор ? после 3-го и 4-го периода, вы можете обнаружить, что ваш шаблон начинает совпадать.

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