Jak będę mógł szukać słów, których nie ma w ciągu znaków.słowa kluczowe dopasowania regex nie są w cudzysłowach
Na przykład, jeśli mam tekst:
Witam Ten tekst jest przykładem.
bla bla bla „ten tekst jest wewnątrz łańcucha”
„losowy ciąg” więcej tekstu bla bla bla „foo”
będę chciał być w stanie dopasować wszystkie słowa text
że nie są w środku " "
. Innymi będę chciał dopasować:
uwaga nie chcę, aby dopasować tekst, który jest podświetlony na czerwono, ponieważ jest wewnątrz łańcucha
Możliwe rozwiązanie:
Pracowałem nad tym i to jest to, co do tej pory miałem:
(?s)((?<q>")|text)(?(q).*?"|)
uwaga, że regex używa if jako: (? (Orzeczenie) prawdziwa alternatywa | fałszywa alternatywa)
więc regex będzie czytać:
find "lub tekst. Jeśli znajdziesz "następnie wybieraj, aż znajdziesz" ponownie (. *? "), Jeśli znajdziesz tekst, a następnie nic nie rób ...
Po uruchomieniu tego wyrażenia pasuję do całego ciągu znaków. Pytanie: Wiem, że mogę usunąć wszystkie ciągi, a następnie szukać tego, czego potrzebuję.
Czy wypróbowałeś generator online regex taki jak: http://txt2re.com/index-csharp.php3 – Surfbutler
Dlaczego chcesz dopasować ciąg znaków, który wiesz, co to jest? Co zamierzasz zrobić z wynikiem? Intencja jest ważna dla innych, aby móc udzielić właściwej odpowiedzi. – Mithon
Nie musisz znać intencji pytania, aby móc na nie odpowiedzieć. Zakładasz również, że wie, czym jest łańcuch. Daje tylko przykłady, aby pokazać, co próbuje zrobić, a niekoniecznie to, czego będzie używał w końcu. Szuka określonego wyniku i nie jest to żadna z naszych spraw, jak ten wynik ma być użyty. –