merge
, мы можем выбрать переменную левой таблицы или правой таблицы, так же, как мы все знакомы с оператором select в SQL (EX: выберите a. * ... или выберите b. * из .....) 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)]
То же самое
select b.* from df1 a inner join df2 b on a.CustomerId=b.CustomerId
merge(df1, df2, by.x = "CustomerId", by.y =
"CustomerId")[,names(df2)]
Lookbehinds на debuggex (PCRE, Javascript и Python) не может быть переменной ширины, что означает, что вы можете использовать (?<=<a>)
, который имеет фиксированную ширину (3 символа), но не то, что может меняться по длине (?<=<a.*>)
(может иметь 3 символа, или 4, или 5 и т. Д.).
Регулярное выражение просто неверно, но debuggex сообщает вам, что совпадения нет.
<a.*?>([ \w]*)<.*?\/a>
, потому что вы все равно получаете группу захвата. Или, если у вас может быть якорь\K
, вы могли бы использовать<a.*?>\K([ \w]*)(?=<.*?\/a>)
. Тем не менее, вы должны использовать правильный парсер HTML, если вы разбираете HTML. – Jerry 2 April 2014 в 21:07a
может / никогда / не должен быть вложенным (предполагая действительный HTML), поэтому базовый RegEx должен быть в порядке. – tenub 2 April 2014 в 21:11\K
делает трюк, спасибо еще раз :) – user3491049 2 April 2014 в 21:15