Я почти смущен, но я изо всех сил, чтобы создать регулярное выражение, чтобы изменить что-то вроде cat dog mouse
к SQL, где положение:Regex для преобразования разделенных пробелами список в SQL, где положение
a.cat=b.cat AND a.dog=b.dog AND a.mouse=b.mouse
С
s/(\w*)\s?/a.$1=b.$1 AND/
я
a.cat=b.cat AND a.dog=b.dog AND a.mouse=b.mouse AND a.=b. AND
Ouch. Помогите оценить.
EDIT: В итоге я использовал два последовательных регулярных выражения. Так как мне нужно было это в макросе SAS, и я хотел, чтобы мой код, чтобы быть кратким, я написал этот макрос:
%Macro rxchange(str,rx1,rx2,rx3,rx4,rx6,rx7,rx8,rx9,rx10);
%Let rxno=1;
%Do %While("&&rx&rxno" Ne "");
%Let str=%SysFunc(PRXChange(%Str(&&rx&rxno), -1, %Str(&str)));
%Let rxno=%Eval(&rxno+1);
%End;
&str
%Mend;
/* Try this: */
%Put %rxchange(cat dog mouse,s/(\w+)\s?/a.$1=b.$1 /,s/(\s+)/ AND /);
Спасибо всем, кто ответил!
Что реализации языка вы используете? –
@Paul, я использую функции регулярного выражения SAS, которые используют синтаксис Perl –