Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation
 
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?
[erix]: it has TOP, IIRC
[Corion]: erix: Ah. I use where 1 = 0 for queries where I only am interested in the structure ;)
[erix]: 1=0 is as short as TOP :)
[erix]: "code of someone that died" -- kinda nice if your code stops working too
[erix]: hard to implement, hmm
[Corion]: erix: Well, they also seem to have changed the server, or some software, or whatever, and seem to be in the process of changing the DB schema from having the "username" as primary key to something else.
[Corion]: Far too many things being done at once, or maybe only now has it become apparent that nobody knows that piece of software anymore

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (10)
As of 2017-01-23 09:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (192 votes). Check out past polls.