Mam kanał w Yahoo Pipes i chcę dopasować wszystko po znaku zapytania.
Do tej pory wymyśliłem, jak dopasować znak zapytania za pomocą…
\?
Teraz wystarczy dopasować wszystko, co jest po znaku zapytania.
"\\?"
Mam kanał w Yahoo Pipes i chcę dopasować wszystko po znaku zapytania.
Do tej pory wymyśliłem, jak dopasować znak zapytania za pomocą…
\?
Teraz wystarczy dopasować wszystko, co jest po znaku zapytania.
"\\?"
Odpowiedzi:
\?(.*)
Chcesz zawartość pierwszej grupy przechwytywania.
Feb 5 '11 at 10:41
. Nadal dobrze jest zwracać uwagę na każdą otrzymaną zmianę. Może ktoś dowie się od Dreamonic wskazując na to.
Spróbuj tego:
\?(.*)
Nawiasy to grupa przechwytywania, której można użyć do wyodrębnienia interesującej nas części ciągu.
Jeśli łańcuch może zawierać nowe wiersze, może być konieczne użycie modyfikatora „kropka wszystko”, aby umożliwić dopasowanie kropki do znaku nowego wiersza. To, czy musisz to zrobić i jak to zrobić, zależy od języka, którego używasz. Wygląda na to, że w swoim pytaniu zapomniałeś wspomnieć o języku programowania, którego używasz.
Inną alternatywą, której możesz użyć, jeśli twój język obsługuje asercje lookbehind o stałej szerokości, to:
(?<=\?).*
Dzięki technice pozytywnego lookbehind :
(?<=\?).*
(Szukamy tutaj tekstu poprzedzonego znakiem zapytania)
Input: derpderp?mystring blahbeh
Output: mystring blahbeh
Zasadniczo ?<=
jest to konstrukcja grupowa, która wymaga znaku zapytania uciekającego przed wykonaniem jakiegokolwiek dopasowania.
Działają naprawdę dobrze, ale nie wszystkie implementacje je obsługują.
\?(.*)$
Jeśli chcesz dopasować wszystkie znaki po „?” możesz użyć grupy, aby dopasować dowolny znak, i lepiej użyj znaku „$”, aby wskazać koniec linii.
.
domyślnie nie pasuje do znaku nowego wiersza. W rezultacie nawet bez znaku końca wiersza w wyrażeniu dopasowałby się do końca wiersza.
Sprawdź tę stronę: http://rubular.com/ W zasadzie witryna pozwala na wprowadzenie przykładowego tekstu (tego, czego szukałbyś w swojej witrynie), a następnie podczas budowania wyrażenia regularnego podświetli to, co jest dopasowywane czas rzeczywisty.
/([a-zA-Z]{4}):/
zagra Test: Welcome
i zgarnieTest
str.replace(/^.+?\"|^.|\".+/, '');
Czasami jest to złe w użyciu, gdy chcesz wybrać, co jeszcze chcesz usunąć między „” i nie możesz użyć tego więcej niż dwa razy w jednym ciągu. Wszystko, co robi, to wybiera to, czego nie ma pomiędzy "" i zastępuje to niczym.
Nawet dla mnie jest to trochę zagmatwane, ale spróbuję to wyjaśnić. ^.+?
(nie coś OPCJA) do pierwszej "
następnie |
Albo / stop (wciąż bada, co to naprawdę znaczy) do / z ^.
wybrał nic aż 2 przed "
użyciem ( |
Stop / AT). I wybierz wszystko, co nastąpi po. +.
\?.*
dopasowuje wszystko (łącznie z pustym ciągiem) po?
.