Witryna, nad którą pracowałem, nie będzie dopasowywać danych przy użyciu wzorca regex w języku PHP (preg_match), który wydaje się działać wszędzie tam, gdzie go testowałem. Ten wzór to:Czy te wzory regex są różne?
<channel.*?>(.*?)</channel>
Jest dopasowywany do kanału RSS z tagiem kanału.
Teraz serwer Pracuję będzie produkować tylko poprawny wynik, jeśli go zmienić na:
<channel.*?>(.*)?</channel>
Moje regex nie jest najlepszy na świecie, więc zastanawiam się, czy ktoś może mi powiedzieć, czy istnieje jakaś znacząca różnica między tymi dwoma wzorcami.
Mała uwaga: zdaję sobie sprawę, że prawdopodobnie lepiej byłoby używać SimpleXML itp., Ale to wyrażenie pochodzi z poprzedniej aplikacji i z różnych powodów nie mogę go zmienić.
Z góry dziękujemy za wszelkie spostrzeżenia.
jest ' '' Twój separator PCRE? Jeśli tak, modyfikator 's' może lub nie ma znaczenia (nie jestem do końca pewien). – BoltClock
Tak '' 'jest ogranicznikiem PCRE. Był używany przez tego, kto napisał kod, zwykle używają '# 'lub' ~ '. – Vunus