Search code examples
regexnotepad++

Adding special character to the END of SINGLE and DOUBLE line strings


Need to ADD special character '♪' to the END of SINGLE and DOUBLE line strings

Below is the BEFORE and AFTER of the results I'm trying to achieve.

Assume this will be done with two separate find/replace inputs.

At the bottom you will find my feeble regex attempts using NotePad++.

==============================
BEFORE
==============================
400
00:31:44,633 --> 00:31:45,716
Come on.

401
00:31:59,940 --> 00:32:02,399
Caleb used to do that
when he ate.

402
00:32:03,902 --> 00:32:05,069
Pull my hair like that.

410
00:32:46,653 --> 00:32:48,654
♪ Saying</i>

411
00:32:48,738 --> 00:32:52,241
♪ This is my message to you</i>

412
00:32:56,163 --> 00:32:57,538
♪ Don't worry</i>

636
00:55:59,545 --> 00:56:02,296
♪ You don't own me

637
00:56:02,798 --> 00:56:06,676
♪ I'm not just
one of your many toys

638
00:56:06,969 --> 00:56:09,929
♪ You don't own me

639
00:56:10,347 --> 00:56:16,394
♪ Don't say
I can't go with other boys

640
00:56:16,728 --> 00:56:20,106
♪ And don't tell me
what to do

641
00:56:20,816 --> 00:56:24,026
♪ Don't tell me what to say ♪

642
00:56:24,278 --> 00:56:27,822
♪ And please,
when I go out with you ♪

643
00:56:28,365 --> 00:56:31,742
♪ Don't put me on display ♪

644
00:56:31,952 --> 00:56:36,080
♪ 'Cause you don't own me ♪

==============================
AFTER
==============================
400
00:31:44,633 --> 00:31:45,716
Come on.

401
00:31:59,940 --> 00:32:02,399
Caleb used to do that
when he ate.

402
00:32:03,902 --> 00:32:05,069
Pull my hair like that.

410
00:32:46,653 --> 00:32:48,654
♪ Saying</i> ♪

411
00:32:48,738 --> 00:32:52,241
♪ This is my message to you</i> ♪

412
00:32:56,163 --> 00:32:57,538
♪ Don't worry</i> ♪

636
00:55:59,545 --> 00:56:02,296
♪ You don't own me ♪

637
00:56:02,798 --> 00:56:06,676
♪ I'm not just
one of your many toys ♪

638
00:56:06,969 --> 00:56:09,929
♪ You don't own me ♪

639
00:56:10,347 --> 00:56:16,394
♪ Don't say
I can't go with other boys ♪

640
00:56:16,728 --> 00:56:20,106
♪ And don't tell me
what to do ♪

641
00:56:20,816 --> 00:56:24,026
♪ Don't tell me what to say ♪

642
00:56:24,278 --> 00:56:27,822
♪ And please,
when I go out with you ♪

643
00:56:28,365 --> 00:56:31,742
♪ Don't put me on display ♪

644
00:56:31,952 --> 00:56:36,080
♪ 'Cause you don't own me ♪

Add Music Note to END of SINGLE LINE STRING:

Find:   (?=♪\B)(.*)
Replace: $1 ♪

Add Music Note to END of DOUBLE LINE STRING:

Find:   (?=♪)(.*)\r\n([A-Za-z]+?)
Replace: $1\r\n$2 ♪

Thanks in Advance


Solution

  • Another option might be using:

    ^(♪\h+[A-Za-z].*?(?:\R[A-Za-z].*?)?)♪?$
    

    Explanation

    • ^ Start of string
    • ( Capture group 1
      • ♪\h+[A-Za-z] Match ♪, 1+ spaces, a char A-Za-z
      • .*? Match any char as least as possible
      • (?:\R[A-Za-z].*?)? Optionally match the next line if it starts with A-Za-z
    • ) Close group 1
    • ♪? Match an optional ♪
    • $ End of string

    Regex demo

    In the replacement use:

    $1 ♪
    

    enter image description here