Fix for overlapping detected matches by SkiTles55 · Pull Request #1853 · MessageKit/MessageKit
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