Chcę użyć danych wejściowych od użytkownika jako wzorca wyrażeń regularnych do wyszukiwania w tekście. Działa, ale jak radzić sobie z przypadkami, w których użytkownik umieszcza w wyrażeniu regularnym znaki o znaczeniu? Na przykład użytkownik chce wyszukać (s)
silnik Word : regex weźmie go (s)
jako grupę. Chcę, żeby traktowało to jak strunę "(s)"
. Mogę uruchomić replace
na danych wejściowych użytkownika i wymienić (
z \(
a )
z \)
ale jest problem będę musiał zrobić wymienić na każdym możliwym symbolem regex. Czy znasz jakiś lepszy sposób?
repl
Argumentemre.sub
jest ciąg znaków, a nie regex; zastosowaniere.escape
go nie ma żadnego sensu.repl
argument nie jest prostym ciągiem, jest analizowany. Na przykład,re.sub(r'(.)', r'\1', 'X')
powróciX
, nie\1
.repl
argumentu: stackoverflow.com/q/49943270/247696Spróbuj:
\ Q i \ E jako kotwice
Umieść warunek Or, aby dopasować pełne słowo lub wyrażenie regularne.
Ref Link: Jak dopasować całe słowo zawierające znaki specjalne w wyrażeniu regularnym
źródło