2

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

Community
  • 1
  • 1
JA1
  • 538
  • 2
  • 7
  • 21
  • I'm not familiar with Nintex, but it looks like a text editor of some sort. What exactly are you trying to do here? If you just want to build your output string, a find and replace should work. Or, are you trying to do something else? – Tim Biegeleisen Apr 18 '17 at 05:05

1 Answers1

2

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.

Wiktor Stribiżew
  • 607,720
  • 39
  • 448
  • 563