Эй, ребята, это должно быть просто, я просто не вижу его, я хотел бы создать регулярное выражение (выполнимое в PERL, Awk, SED/* nix), которое будет работать после того, как оно найдет ($), самый следующий Equal (=) и работайте над тем, что находится между первым экземпляром двойных или одинарных кавычек для последнего экземпляра двойных или одинарных кавычек.Regex для работы после двух условий
Позвольте мне привести несколько примеров.
$this = 'operate on some text in here'; # operates between single quotes
$this = "operate on some text in here"; # operates between double quotes
$this = 'operate "on some text" in here'; # operates between single quotes
$this = 'operate \'on some text\' in here'; # operates between outer single quotes
Я пробовал некоторые действительно плохие регулярные выражения. но просто не мог заставить его соответствовать.
Вот что я вставив его в случае anyones заинтересованных
printf '$request1 = "select * from whatever where this = that and active = 1 order by something asc";\n' |
grep '{regex}' * |
perl -pe 's/select/SELECT/g ; s/from/\n FROM/g ; s/where/\n WHERE/g ; s/and/\n AND/g ; s/order by/\n ORDER BY/g ; s/asc/ASC/g ; s/desc/DESC/g ;' | ## enter through file with all clauses
awk '{gsub(/\r/,"");printf "%s\n%d",$0,length($0)}' ## take first line convert to whitespace, use on following lines
Спасибо, ребята!
Я бы не хотел, чтобы это или что-то еще, кроме var, было до кавычек, хотя для проклятого хорошего ответа – ehime
@ehime - if вам нужен только правильный сайт уравнения, а затем измените 'print' на' '$ x [2] \ n" 'только. –
Как я могу запустить это/объединить это с моим текущим кодом? – ehime