aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe-php-shim
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe-php-shim')
-rw-r--r--crates/shirabe-php-shim/src/preg.rs16
1 files changed, 4 insertions, 12 deletions
diff --git a/crates/shirabe-php-shim/src/preg.rs b/crates/shirabe-php-shim/src/preg.rs
index 202510e9..d8bdcc10 100644
--- a/crates/shirabe-php-shim/src/preg.rs
+++ b/crates/shirabe-php-shim/src/preg.rs
@@ -149,20 +149,12 @@ pub fn preg_quote(str: &str, delimiter: Option<char>) -> String {
out
}
-// Returns None if the pattern did not match; otherwise index 0 is the full match and 1.. the
-// capture groups. A group that did not participate is None.
-pub fn preg_match(pattern: impl PregPattern, subject: &str) -> Option<Vec<Option<String>>> {
- let __resolved = pattern.resolve();
- let (re, _anchored) = __resolved.parts();
- let caps = re.captures(subject)?;
- Some(
- (0..caps.len())
- .map(|g| caps.get(g).map(|m| m.as_str().to_string()))
- .collect(),
- )
+// Returns None if the pattern did not match; otherwise the match's capture groups.
+pub fn preg_match<'h>(pattern: impl PregPattern, subject: &'h str) -> Option<PregMatches<'h>> {
+ preg_match2(pattern, subject, 0)
}
-// Returns None if the pattern did not match; otherwise the match's capture groups.
+// `preg_match` with PHP's `$offset` argument: the search starts at byte offset `offset`.
pub fn preg_match2<'h>(
pattern: impl PregPattern,
subject: &'h str,