How would I trim the first 8 characters in a name but leave the rest of the note intact?
Problem: I have many old notes from nvAlt that I imported into Tinderbox that had this format:
20210630080005 This is a note about Nothing
I want to create a stamp to change it to
20210630 This is a note about nothing
I must admit, I have not done many text manipulations in Tinderbox. SubString() looked like it might work to get the first 8 characters BUT…I also want the rest of the name as well.
Here is where I am getting stuck. Here is the code for the first 8 characters, but I am not sure of the correct code I need to leave the rest of the note intact.
OK, I fixed the thread name as it was describing a different outcome to the one you want.
So, you have a note that is essentially ‘yyyymmddhhmmss Some name....’ and you want it as ’ yyyymmdd Some name....'. IOW, you want to lose the 6 digits of the time part of the date/time sequence.
The problem here is we can’t just look for and replace a 6-digit string as that can match anywhere in the initial sequence. We could target 6-digits+space and replace with a space:
$Name = $Name.replace("\d{6} "," ");
This works but gives a false positing if the textual part of the name has that sequence. Thus ‘20210630080005 This is a note about #123456 Nothing’ would become ‘20210630 This is a note about # Nothing’.
Happily, regex are precise. Back-references to the rescue:
match and capture the beginning of the $Name (first 8 digits) as back reference $1 (i.e. ‘20210630’)
match the bit we don’t want and make no back-reference
match and capture the rest of the $Name as back reference $2 (i.e. ’ This is a note about Nothing’ - note the space retained at the beginning)
replace the existing $Name with the combination of $1 and $2, i.e. ‘20210630 This is a note about Nothing’)
use that string as the new $Name value
tada!
More on back-references. Yes, back-references are very confusing at first sight, especially if one is new to regex. I don’t think there is an easy explanation, or they’d be easier to understand. But read the docs (and looks for deeper documentation of regex back-references online) and with a bit of practice you’ll be using them with confidence—or at least with some sense of what to try if they don’t work first time.