Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyrażenie regularne - błędne wyłapanie wartości
Forum PHP.pl > Forum > Przedszkole
Elber
witam,

mam ciąg

  1. $this->_headerText = Mage::helper('productstable')->__('Products Table').Mage::helper('productstable')->__('Add Products Table');


i chcę wyłapać tylko to co jest w __('')

gdy wykonuje

  1. preg_match_all("/__\('(.+)'\)?/", $file, $string);


skrypt zwraca mi

  1. Products Table'),Mage::helper('productstable')->__('Add Products Table


jeśli ciąg dam do nowej linii to jest ok, problem tylko z tym gdy jest w 1 linii.
luck
Biorąc pod uwagę efekt, jaki chesz uzyskać, to po mojemu to masz znak zapytania w niewłaściwym miejscu. Spróbuj tak:
  1. /__\('(.+?)'\)/

Powinno być lepiej. Pozdrawiam.
Elber
Ok, działa a jeśli byłoby

$this->_headerText = Mage::helper('productstable')->__('Products Table').Mage::helper('productstable')->__("Add Products Table", $dsacsada);

jak wyłapać te Add Products Table ?
Turson
Kolejne (.+?) w tym miejscu
Elber
No właśnie nie bo teraz mamy 2 przypadki

1.
  1. __('Products Table')

2.

  1. __("Add Products Table", $dsacsada)
luck
Chcemy gotowca? wink.gif
  1. __\(['"](.+?)['"].*?\)
Elber
Nie gotowca, sam cały czas próbuję ale nie wychodzi,

Na http://www.phpliveregex.com/ działa ladnie, jednak w php wyrzuca mi błąd

Warning: preg_match_all(): Unknown modifier '\'

  1. preg_match_all("__\(['\"](.+?)['\"].*?\)", $file, $string);


bo jak dam preg_match_all("__\(['"](.+?)['"].*?\)", $file, $string); to mam błąd zamkniętego "
Turson
  1. preg_match_all("#__\(['\"](.+?)['\"].*?\)#", $file, $string);
Elber
Działa wyśmienicie smile.gif muszę poświęcić więcej czasu wyrażeniom regularnym bo cienko z nimi wink.gif Dziękuję za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.