Fix for overlapping detected matches #1853
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What does this implement/fix? Explain your changes.
When using in MessageLabel multiple custom detector types, some text can match multiple regex's, and then they will be applied, and final action will be related of tap position. My fix removes all overlapped matches and leaves only one biggest.
Sample:
Text in message: "address MNtz8Zz1cPD1CZadoc38jT5qeqeFBS6Aif can match multiple regex's"
Regex's for custom detectors: "(bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}", "([3ML][\w]{26,33})|ltc1[\w]+", "[qmN][a-km-zA-HJ-NP-Z1-9]{26,33}"
Detected matches before fix: MNtz8Zz1cPD1CZadoc38jT5qeqeFBS6Aif, Ntz8Zz1cPD1CZadoc38jT5qeqeFBS6Aif, 1cPD1CZadoc38jT5qeqeFBS6Aif
Detected matches after fix: MNtz8Zz1cPD1CZadoc38jT5qeqeFBS6Aif
Does this close any currently open issues?
Nope
Any relevant logs, error output, etc?
Nope
Any other comments?
Nope
Where has this been tested?
Devices/Simulators: iPhone 15 (Simulator)
iOS Version: 17.5
Swift Version: 5.10
MessageKit Version: 4.2.0