Forum Discussion
Hi Spiro,
Below is the received error message. It doesn’t work either with 2 equal signs…
Expression parsing failed near -- SSO__c >> = << TRUE (Reason: Attempt to use assignment at line 1:7, which is not supported in the expression language; Resolution: If you meant to compare two values, use two equals signs (==))
I don’t think you need to use .match() - but a slight update to @siwadon’s solution might resolve multiples within the notes:
$notes.replace(/.*(#IF:.{9}).*/g, (...args) => args[1].slice(-9))
The “g” at the end of the pattern tells it to search the string globally. The slice(-9) will give only the 9 characters following the #IF. Multiple matches are separated with a \n (newline) character.
- JensDeveloper4 years agoContributor II
Hi,
I tested both but it still shows text after the nine characters. on the second one. Is it because thats a new line of text?
$notes.replace(/.*(#IF:.{9}).*/, (...args) => args[1])
It replaces the matched string with the first capture group (#IF: and the following 9 characters).
This will not work correctly when the input contains multiple matches. If that’s the case, please let me know. You might need to use
.match()
instead.It’s the newline character in the string that is causing the issue. The dot notation for character matching in regex does not match newlines. After a bit of thought, we can also simplify the result by using the regex group capture syntax. Try this:
$notes.replaceAll('\n','').replace(/.*#IF:(.{9}).*/g, '$1')
- JensDeveloper4 years agoContributor II
Thank you it works now. I get it now. Still improving my regex 🙂
- darshthakkar4 years agoValued Contributor
Thank you @JensDeveloper for raising this, I got to learn something new as well.
@koryknick and @siwadon’s suggestion and help on this one has been much appreciated.
Related Content
- 10 months ago
- 11 months ago