Is there a way to tell regex to work from right to left?
No. One of the basic principles of the regex engine is that it works from left to right (GrandFather's suggestion of reverseing the string is a workaround/hack, though I personally have never seen anyone actually do this in production). Another basic principle is that the engine will stop at the first successful match, which sometimes leads to confusion when, for example, people expect .* to match more than "" (though in your example in the root node you're using the ^ $ anchors to help with that). Combine this with the idea of backtracking (Update: which of course does work from right to left, but too much backtracking can be very inefficient) and hopefully this will lead to a better understanding :-) I very much recommend a read of perlretut, and if you want to see your regex in action, then install Regexp::Debugger and run e.g. perl -MRegexp::Debugger -e '"foo.bar" =~ /^.*(\..*)$/'
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|