In my haste to get this working I failed to ask how to stop after the second word in my original post. Grab first 4 characters of two words RegEx
If I have Awesome Sauce Today
I would like to have AwesSauc
The code in my first post will capture the first 4 characters of any word and combine them. so Awesome Sauce Today
will become AwesSaucToda
. I want it to stop capturing after the second word. So in my example Today
would be ignored but it will still capture 4 characters of the first two words it encounters to create the new wor AwesSauc
You may still use the Replace Text action and use
Pattern: (?s)^\P{L}*(\p{L}{1,4})\p{L}*\P{L}+(\p{L}{1,4}).*
Replacement text: $1$2
See the regex demo.
The difference between this solution and the previous one is that the pattern is anchored at the start with ^
, instead of a \W
(that matches any non-word char) I am using a \P{L}
that matches any non-letter char (adjust as you see fit), and to match the first and second word beginning, I am using 2 capturing groups now ((\p{L}{1,4})...(\p{L}{1,4})
), hence two backreferences in the replacement pattern. The (?s)
modifier makes the .
pattern to match any char, including a newline. The .*
at the end is necessary to remove the rest of the string after the necessary text is captured into the 2 capturing groups.