Я собирался задать этот один и тот же вопрос, и я нашел решение.
Предположим, у вас есть произвольное количество слов, которые вы хотите захватить.
" есть четыре огня: «
и
« капитан-пикард - это бомба »
Вы можете подумать, что решение:
/ ((\ w +) \ s?) + /
Но это будет соответствовать только всей входной строке и последней захваченной группе.
Что вы можете do использует переключатель «g».
Итак, пример в Perl:
use strict; использовать предупреждения; my $ str1 = "есть четыре огня"; мой $ str2 = «капитан-пикард - это бомба»; foreach ($ str1, $ str2) {my @a = ($ _ = ~ / (\ w +) \ s? / g); print "захваченных групп:". join ("|", @a). "\n"; }
Вывод:
захваченных групп: есть | четыре | огни захваченных групп: captain | picard | is | the | bomb [ ! d2]
Итак, есть решение, если ваш язык выбора поддерживает эквивалент «g» (и я думаю, что большинство из них ...).
Надеюсь, это поможет кому-то который был в том же положении, что и я!
S
На вновь созданном значке попробуйте использовать:
icon.getImage (). flush ();
Хорошо,
отбросил старый ответ. После некоторого поиска я нашел способ сделать это.
ImageIcon icon = .. [анимированный gif без цикла] .. .... label1.setIcon (значок); // анимация воспроизводится один раз .... // теперь время, чтобы удалить значок из метки1 и добавить его в label2 label1.setIcon (null); icon.getImage () на одном уровне (). // сбрасываем ресурс, используемый изображением label2.setIcon (значок); ....
Java Api: изображение # flush ()
btw. если вы оставите строку label1.setIcon (null);
, она все равно повторит анимацию значка только для метки2. label1 остается на последнем кадре.