On Tue, May 1, 2018 at 3:54 PM Simon Proctor <simon.proc...@gmail.com
<mailto:simon.proc...@gmail.com>> wrote:
So what you what to match is a followed by zero or more not a's and
then the end of the string.
<[a]> is the perl6 regex for a range comprising of a alone you can
negate that like so <-[a]>
Giving us
perl6 -e 'my $x="abcabcabc"; $x ~~ s/a <-[a]>* $/xyz/; say $x;'
(There's probably a better way, this was just my first attempt)
On Tue, 1 May 2018 at 14:37 ToddAndMargo <toddandma...@zoho.com
<mailto:toddandma...@zoho.com>> wrote:
Hi All,
I am trying to change the last three letters of a string
$ perl6 -e 'my $x="abcabcabc"; $x ~~ s/"a.*"$/xyz/; say $x;'
abcabcabc
I want abcabcxyz
And, in real life, only the "a" will be a know letter.
Everything else will vary. And the "a" will repeat a lot.
I am only interested in changing the last "a" and everything
that comes after it.
Many thanks,
-T
On 05/01/2018 09:03 AM, Fernando Santagata wrote:
I guess there are more ways to do that than I can count :-)
These two don't use a regex:
($a.comb)[0..^*-3].join ~ 'xyz'; # replace the last three letters of a
string
$a.subst: 'abc', 'xyz', :3rd; # replace the third occurrence of 'abc'
only the "a" will be consistent. The string could look like
abcadksavssa234 expected result abcadksavssxyz
askfsssalwekjarrsvs expected result askfsssalwekjxyz