Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re^5: Find pieces of text in a file enclosed by `@` and replace the inside

by bart (Canon)
on Mar 12, 2013 at 21:08 UTC ( #1023051=note: print w/replies, xml ) Need Help??


in reply to Re^4: Find pieces of text in a file enclosed by `@` and replace the inside
in thread Find pieces of text in a file enclosed by `@` and replace the inside

Well, there are several options.
  • Use a different set of delimiters to mark your sections something that cannot occur in real live data, as opposed to using "@" for a delimiter.
  • Have strict rules about what can be between "@", for example: allow just letters. That way you can safely distinguish between an email address and a marked section, as both parts of an email address will most likely either contain non-word characters, or you write at least one non-letter character right right next to it, you probably won't ever write an email address touching another word.
  • Find a way to escape the "@" character, for example "\@" could represent a "@", but then you need to escape the backslash too: "\\". Or, and this is possibly simpler: let "@@" represent a single "@". Ooh, I like that.
  • Comment on Re^5: Find pieces of text in a file enclosed by `@` and replace the inside

Replies are listed 'Best First'.
Re^6: Find pieces of text in a file enclosed by `@` and replace the inside
by kluther (Novice) on Mar 29, 2013 at 05:16 UTC
    Hi Bart, sorry for my late response. But can you show me how to do the option with "@@"? Thanks a lot!
      Well I was thinking something along these lines:
      s<\@(.*?)\@>{ length $1 ? subst($1) : '@' }ge;
      Whether this is sufficient depends on whether the string it matches and replaces, must be able to contain a '@'. Well, you can write strings like "blah blah @foo@@@@bar@ blah" where both "foo" and "bar will get the special treatment, and the "@@" in the middle of the quadruple will be replaced by a single "@". I guess that will probably suffice.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1023051]
help
Chatterbox?
[Corion]: Krug is generic pottery ware for pouring beverages, but a Bembel is painted with that blue paint and contains only (!) Apfelwein
[shmem]: Corion: alas, air too.
[Corion]: shmem: Yes, very sad!
[choroba]: doesn't sound much useful, which means I'll probably remember it
[karlgoethebier]: "that blue pain" == Salzglasur as far as i remember
[karlgoethebier]: Paint!
[shmem]: karlgoethebier the blue pain comes after all bembels are empty
[karlgoethebier]: Confusing "Bembel" with "Membel" might result in a slap in the face in Hesse...
[karlgoethebier]: shmem: Yes. Greetings from Dr. Freud
[Discipulus]: blue pain is a synōnymía

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2017-05-24 08:57 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?