Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This doesn’t seem sufficient as soon as you want to perform some kind of structural substitution, for example doing the equivalent of s/"([^"]*)"/'$1'/. If it could do that and also somehow be able to replace any of the [^"] that match ['] by \', that would seem more useful.

More generally speaking, since regular expressions effectively define a parse tree on their matches, being able to perform more general transformations of those trees would be useful.



If I understand correctly the following ttre expression does what you're asking for:

  ":'(':(\\')|[^"'])*":'


So this is how it feels to read a regex when you don't know how to regex.


Good point, I didn't think of that solution.


Thank you for doing my work! :)


Hi,

If I understand it correctly you want to change something inside the "..." block and change the quotas to single '.

It can be done by this expression:

echo '"hello world" "hello again!"' | ./trre "\":'.+?:-\":'"

'-' '-'

So I substitute the text inside "" by symbol - using this expression ".+?:-" and simultaneously changing the surrounding quota.

Question mark means non-greedy mode.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: