В Regex, как использовать специальные символы (*, +,?) В поиске lookbehind? [Дубликат]

  1. Используя функцию merge, мы можем выбрать переменную левой таблицы или правой таблицы, так же, как мы все знакомы с оператором select в SQL (EX: выберите a. * ... или выберите b. * из .....)
  2. Мы должны добавить дополнительный код, который будет подмножаться из недавно объединенной таблицы. SQL: - select a.* from df1 a inner join df2 b on a.CustomerId=b.CustomerId R: - merge(df1, df2, by.x = "CustomerId", by.y = "CustomerId")[,names(df1)]

То же самое

  • SQL: - select b.* from df1 a inner join df2 b on a.CustomerId=b.CustomerId
  • R: - merge(df1, df2, by.x = "CustomerId", by.y = "CustomerId")[,names(df2)]
1
задан user3491049 2 April 2014 в 20:53
поделиться

1 ответ

Lookbehinds на debuggex (PCRE, Javascript и Python) не может быть переменной ширины, что означает, что вы можете использовать (?<=<a>), который имеет фиксированную ширину (3 символа), но не то, что может меняться по длине (?<=<a.*>) (может иметь 3 символа, или 4, или 5 и т. Д.).

Регулярное выражение просто неверно, но debuggex сообщает вам, что совпадения нет.

4
ответ дан Jerry 21 August 2018 в 18:56
поделиться
  • 1
    Я понимаю. Я должен найти другой способ сделать это. Спасибо за ответ. – user3491049 2 April 2014 в 21:06
  • 2
    @ user3491049 Вы должны иметь возможность использовать что-то вроде <a.*?>([ \w]*)<.*?\/a>, потому что вы все равно получаете группу захвата. Или, если у вас может быть якорь \K, вы могли бы использовать <a.*?>\K([ \w]*)(?=<.*?\/a>). Тем не менее, вы должны использовать правильный парсер HTML, если вы разбираете HTML. – Jerry 2 April 2014 в 21:07
  • 3
    @Jerry В этом контексте тег a может / никогда / не должен быть вложенным (предполагая действительный HTML), поэтому базовый RegEx должен быть в порядке. – tenub 2 April 2014 в 21:11
  • 4
    @Jerry \K делает трюк, спасибо еще раз :) – user3491049 2 April 2014 в 21:15
  • 5
    @ user3491049 Добро пожаловать! – Jerry 2 April 2014 в 21:17
Другие вопросы по тегам:

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