В настоящее время я пытаюсь извлечь ВСЕ подходящие выражения из текста, например. выглядит так и помещает их в массив.Shell: извлекать слова, соответствующие шаблону, но игнорировать обходящее выражение
aaaaaaaaa${bbbbbbb}ccccccc${dddd}eeeee
ssssssssssssssssss${TTTTTT}efhsekfh ej
348653jlk3jß1094utß43t59ßgöelfl,-s-fko
Выражение соответствия похоже на это: ${}
. Остерегайтесь, что мне нужно полное выражение, а не только слово между этим выражением! Так что в этом случае результат должен быть массивом, который содержит:
${bbbbbbb}
${dddd}
${TTTTTTT}
Проблемы я наткнулся и не мог решить:
- Он должен НЕ признает это в целом
${bbbbbbb}ccccccc${dddd}
, но каждый для его собственный - grep -o не установлен на старой машине, Perl также не допускается!
- Многие команды, например. BASH_REMATCH передает только целую строку или первое вхождение выражения, а не все соответствующие выражения в строке!
Упомянутая модель \${[^}]*}
, кажется, работает частично, так как он может извлечь первое вхождение выражения, однако это всегда omitts того следующей после этого, если он находится в той же строке текста. Мне нужно, чтобы все соответствующие выражения находились в строке, а не только первая.
вам нужно не жадное совпадение: ['perl -nE 'say $ 1 while /\${([^}]*)}/g''](http://ideone.com/ZRsh6M) – jfs