Regex Too Complicated - replaceAll - large strings preprocessed before deserialize The Next CEO of Stack Overflow2019 Community Moderator ElectionHow do you deserialize json properties that are reserved words in apex?APEX ENUM Serialize to and Deserialize from JSONregex too complicated error when using split function for less than 1M charactersCatch Regex too complicated when splitting a string in salesforceError - Heap Size Too LargeWhat is the correct JSON/Apex Strategy?Serialize JSON attribute that is a reserved keyword in ApexRegex too complicated when splitting a stringHow to deserialize into interface type when concrete type is unknownRead through small CSV file returns Regex too complicated
Raspberry pi 3 B with Ubuntu 18.04 server arm64: what pi version
Do I need to write [sic] when including a quotation with a number less than 10 that isn't written out?
Direct Implications Between USA and UK in Event of No-Deal Brexit
It it possible to avoid kiwi.com's automatic online check-in and instead do it manually by yourself?
Which acid/base does a strong base/acid react when added to a buffer solution?
Physiological effects of huge anime eyes
How do I secure a TV wall mount?
My ex-girlfriend uses my Apple ID to login to her iPad, do I have to give her my Apple ID password to reset it?
Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?
Calculate the Mean mean of two numbers
Are British MPs missing the point, with these 'Indicative Votes'?
Can I cast Thunderwave and be at the center of its bottom face, but not be affected by it?
MT "will strike" & LXX "will watch carefully" (Gen 3:15)?
Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact
Compensation for working overtime on Saturdays
Masking layers by a vector polygon layer in QGIS
Why does freezing point matter when picking cooler ice packs?
Mathematica command that allows it to read my intentions
Is there a rule of thumb for determining the amount one should accept for of a settlement offer?
How to unfasten electrical subpanel attached with ramset
How can I prove that a state of equilibrium is unstable?
Cannot restore registry to default in Windows 10?
Ising model simulation
Why did early computer designers eschew integers?
Regex Too Complicated - replaceAll - large strings preprocessed before deserialize
The Next CEO of Stack Overflow2019 Community Moderator ElectionHow do you deserialize json properties that are reserved words in apex?APEX ENUM Serialize to and Deserialize from JSONregex too complicated error when using split function for less than 1M charactersCatch Regex too complicated when splitting a string in salesforceError - Heap Size Too LargeWhat is the correct JSON/Apex Strategy?Serialize JSON attribute that is a reserved keyword in ApexRegex too complicated when splitting a stringHow to deserialize into interface type when concrete type is unknownRead through small CSV file returns Regex too complicated
Given
- A JSON string with Apex reserved words (like
"currency":"USD"and otherwise undeserializable-into-Date type (like"someDate":"0001-01-01T00:00:00Z") An apex method that uses
String s = s.replaceAll('"currency":','"currencyX":')
.replaceAll('"0001\-01\-01T00:00:00Z"','null');
before deserializing into a custom Apex type with property String currencyX and Date someDate
When
The incoming Apex string is very large (> 1MB)
Then
Uncatchable error: Regex Too Complicated
What to do?
apex
add a comment |
Given
- A JSON string with Apex reserved words (like
"currency":"USD"and otherwise undeserializable-into-Date type (like"someDate":"0001-01-01T00:00:00Z") An apex method that uses
String s = s.replaceAll('"currency":','"currencyX":')
.replaceAll('"0001\-01\-01T00:00:00Z"','null');
before deserializing into a custom Apex type with property String currencyX and Date someDate
When
The incoming Apex string is very large (> 1MB)
Then
Uncatchable error: Regex Too Complicated
What to do?
apex
add a comment |
Given
- A JSON string with Apex reserved words (like
"currency":"USD"and otherwise undeserializable-into-Date type (like"someDate":"0001-01-01T00:00:00Z") An apex method that uses
String s = s.replaceAll('"currency":','"currencyX":')
.replaceAll('"0001\-01\-01T00:00:00Z"','null');
before deserializing into a custom Apex type with property String currencyX and Date someDate
When
The incoming Apex string is very large (> 1MB)
Then
Uncatchable error: Regex Too Complicated
What to do?
apex
Given
- A JSON string with Apex reserved words (like
"currency":"USD"and otherwise undeserializable-into-Date type (like"someDate":"0001-01-01T00:00:00Z") An apex method that uses
String s = s.replaceAll('"currency":','"currencyX":')
.replaceAll('"0001\-01\-01T00:00:00Z"','null');
before deserializing into a custom Apex type with property String currencyX and Date someDate
When
The incoming Apex string is very large (> 1MB)
Then
Uncatchable error: Regex Too Complicated
What to do?
apex
apex
asked Mar 7 at 18:08
cropredycropredy
36.3k443126
36.3k443126
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
This is basically teaching an old dog (me) new tricks
A cursory reading of the Apex String class documentation shows two methods
replace(target,replacement)replaceAll(regExp,replacement)
The naive developer (me) assumes that the first method, replace, only replaces a SINGLE instance of the target string and since the use case assumes you need to replace ALL occurrences of some pattern, you should use the more powerful replaceAll(..)
But epistemic arrogance crept in and I did not realize replace(target,replacement) replaces ALL occurrences of target with replacement
Replaces each substring of a string that matches the literal target sequence target with the specified literal replacement sequence replacement.
So, if you have large strings and you are just doing simple text substitution, avoid replaceAll
String s = s.replace('"currency":','"currencyX":')
.replace('"0001-01-01T00:00:00Z"','null');
add a comment |
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "459"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f252997%2fregex-too-complicated-replaceall-large-strings-preprocessed-before-deseriali%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
This is basically teaching an old dog (me) new tricks
A cursory reading of the Apex String class documentation shows two methods
replace(target,replacement)replaceAll(regExp,replacement)
The naive developer (me) assumes that the first method, replace, only replaces a SINGLE instance of the target string and since the use case assumes you need to replace ALL occurrences of some pattern, you should use the more powerful replaceAll(..)
But epistemic arrogance crept in and I did not realize replace(target,replacement) replaces ALL occurrences of target with replacement
Replaces each substring of a string that matches the literal target sequence target with the specified literal replacement sequence replacement.
So, if you have large strings and you are just doing simple text substitution, avoid replaceAll
String s = s.replace('"currency":','"currencyX":')
.replace('"0001-01-01T00:00:00Z"','null');
add a comment |
This is basically teaching an old dog (me) new tricks
A cursory reading of the Apex String class documentation shows two methods
replace(target,replacement)replaceAll(regExp,replacement)
The naive developer (me) assumes that the first method, replace, only replaces a SINGLE instance of the target string and since the use case assumes you need to replace ALL occurrences of some pattern, you should use the more powerful replaceAll(..)
But epistemic arrogance crept in and I did not realize replace(target,replacement) replaces ALL occurrences of target with replacement
Replaces each substring of a string that matches the literal target sequence target with the specified literal replacement sequence replacement.
So, if you have large strings and you are just doing simple text substitution, avoid replaceAll
String s = s.replace('"currency":','"currencyX":')
.replace('"0001-01-01T00:00:00Z"','null');
add a comment |
This is basically teaching an old dog (me) new tricks
A cursory reading of the Apex String class documentation shows two methods
replace(target,replacement)replaceAll(regExp,replacement)
The naive developer (me) assumes that the first method, replace, only replaces a SINGLE instance of the target string and since the use case assumes you need to replace ALL occurrences of some pattern, you should use the more powerful replaceAll(..)
But epistemic arrogance crept in and I did not realize replace(target,replacement) replaces ALL occurrences of target with replacement
Replaces each substring of a string that matches the literal target sequence target with the specified literal replacement sequence replacement.
So, if you have large strings and you are just doing simple text substitution, avoid replaceAll
String s = s.replace('"currency":','"currencyX":')
.replace('"0001-01-01T00:00:00Z"','null');
This is basically teaching an old dog (me) new tricks
A cursory reading of the Apex String class documentation shows two methods
replace(target,replacement)replaceAll(regExp,replacement)
The naive developer (me) assumes that the first method, replace, only replaces a SINGLE instance of the target string and since the use case assumes you need to replace ALL occurrences of some pattern, you should use the more powerful replaceAll(..)
But epistemic arrogance crept in and I did not realize replace(target,replacement) replaces ALL occurrences of target with replacement
Replaces each substring of a string that matches the literal target sequence target with the specified literal replacement sequence replacement.
So, if you have large strings and you are just doing simple text substitution, avoid replaceAll
String s = s.replace('"currency":','"currencyX":')
.replace('"0001-01-01T00:00:00Z"','null');
answered Mar 7 at 18:08
cropredycropredy
36.3k443126
36.3k443126
add a comment |
add a comment |
Thanks for contributing an answer to Salesforce Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsalesforce.stackexchange.com%2fquestions%2f252997%2fregex-too-complicated-replaceall-large-strings-preprocessed-before-deseriali%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
