emptyOVO opened a new pull request, #10993:
URL: https://github.com/apache/inlong/pull/10993
…nction
<!-- Prepare a Pull Request
Change the title of pull request refer to the following example:
[INLONG-XYZ][Component] Title of the pull request
-->
<!-- Specify the issue this pull request going to fix.
The following *XYZ* should be replaced by the actual [GitHub
Issue](https://github.com/apache/inlong/issues) number)-->
Fixes #10986
### Motivation
add RegexpMatchesFunction class to support postgresql function
REGEXP_MATCHES(str, pattern), provide unit tests
<!--Explain here the context, and why you're making that change. What is the
problem you're trying to solve.-->
### Modifications
<!--Describe the modifications you've done.-->
### Verifying this change
Matching a single pattern:
Let's say we have a string from which we want to extract substrings that
match a particular pattern
* REGEXP_MATCHES('The quick brown fox', 'quick')--returns {quick}
Extract multiple subpatterns
Multiple substrings can be extracted using capture groups in regular
expressions
* REGEXP_MATCHES('User: Alice, ID: 12345', 'User: (\w+), ID:
(\d+)')--returns {Alice,12345}
Globally match multiple patterns
The g flag can be used when you want to match all the substrings that occur
* REGEXP_MATCHES('foo 123 bar 456', '\d+', 'g')--returns {"123","456"}
Case matching is ignored
Use the i flag to ignore case for matching
* REGEXP_MATCHES('Hello World', 'hello', 'i')--returns {Hello}
Multi-line pattern matching
Using the m flag allows regular expressions to match across multiple lines
* REGEXP_MATCHES('First line\nSecond line', '^Second', 'm')--returns {Second}
Some Announcements:
REGEXP_MATCHES() returns an array, so be careful about using arrays when
processing the results.
If the global flag g is not used, only the first matching substring is
returned.
If there are multiple flags, the effects need to be performed simultaneously
*(Please pick either of the following options)*
- [ ] This change is a trivial rework/code cleanup without any test coverage.
- [x] This change is already covered by existing tests, such as:
*(please describe tests)*
- [ ] This change added tests and can be verified as follows:
*(example:)*
- *Added integration tests for end-to-end deployment with large payloads
(10MB)*
- *Extended integration test for recovery after broker failure*
### Documentation
- Does this pull request introduce a new feature? (yes / no)
- If yes, how is the feature documented? (not applicable / docs / JavaDocs
/ not documented)
- If a feature is not applicable for documentation, explain why?
- If a feature is not documented yet in this PR, please create a follow-up
issue for adding the documentation
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]