in reply to Regex Search String in a Variable
> I feel like I am missing something very basic here, but I just can't see it. TIA for any suggestions.
You are getting bitten by what is called "slasheritis" in the emacs-lisp world.
You have to escape backslashes from two interpretations which turns many elisp regexes into an unreadable mess filled with quadruple backslashes \\\\
This works:
#!/usr/bin/perl use strict; use warnings; use Test::More; my ($text, $search); $text = "\\x1\\x2\\x3\\x4"; $text =~ s/x2\\.+\\x4/new/; my $exp = $text; $text = "\\x1\\x2\\x3\\x4"; $search = "x2\\\\.+\\\\x4"; $text =~ s/$search/new/; my $got = $text; is( $got, $exp, "slasheritis"); done_testing;
ok 1 - slasheritis 1..1
there are more elegant solutions in Perl°, but I wanted to clarify the problem.
HTH! :)
Cheers Rolf
(addicted to the Perl Programming Language :)
Wikisyntax for the Monastery
°) alas not in GnuEmacs. XEmacs had "raw strings", but became abandon-ware.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Regex Search String in a Variable
by johnaj (Sexton) on May 01, 2021 at 20:31 UTC | |
by LanX (Saint) on May 01, 2021 at 20:56 UTC | |
|
Re^2: Regex Search String in a Variable
by roho (Bishop) on May 01, 2021 at 21:01 UTC |