A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/gwangjinkim/regreplaceR below:

gwangjinkim/regreplaceR: Match and replace named groups in Regex

This R package provides 4 tiny regex tools to extract, match, and replace named regex groups in strings. It contains in addition to 3 functions groups(), match_group() and replace_group() a R6 class Replacer which is thought as the main interface of this package.

You can install this package by installing it from CRAN or from this GitHub repository.

# install directly from CRAN
install.packages("regreplaceR")

# or install directly from this github repository

# install the devtools package if not already installed
install.packages("devtools")

# install the package directly from this repository
devtools::install_github("gwangjinkim/regreplaceR")

The package offers three core functions to interact with strings using regular expressions with named groups:

Additionally, it includes an R6 class called Replacer that encapsulates these functionalities for a more object-oriented approach to regex-based operations.

I couldn't use match() and replace() as generic functions, because there are already generic functions which require a specific set of arguments. By using an R6 class, I was free to choose the arguments for match() and replace().

This function extracts all named groups from a string based on a provided regex pattern.

pattern <- "(?P<name>\\w+) is (?P<age>\\d+)"
s <- "Jane is 25"
result <- groups(pattern, s)

# Output:
# $name
# [1] "Jane"
#
# $age
# [1] "25"

Extract the value of a specific named group from the string.

pattern <- "(?P<name>\\w+) is (?P<age>\\d+)"
s <- "Jane is 25"
name <- match_group(pattern, s, "name")

# Output:
# [1] "Jane"

Replace the value of a specific named group with a new string.

pattern <- "(?P<name>\\w+) is (?P<age>\\d+)"
s <- "Jane is 25"
modified <- replace_group(pattern, s, "name", "John")

# Output:
# [1] "John is 25"

The Replacer class provides an object-oriented approach to regex-based operations. It allows you to create an instance with a specific regex pattern and then use it to match or replace named groups in strings.

# Create a new Replacer object
r <- Replacer$new(pattern = ".*?_(?P<date>\\d{8}-\\d{6})(?P<ext>\\..+$)")

# Match a group within a string
date <- r$match("file_20230905-123456.txt", "date")

# Replace the value of a matched group
modified_string <- r$replace("file_20230905-123456.txt", "date", "20240905-123456")

This package is licensed under the MIT License. See LICENSE for details.

Happy regexing! If you have any questions or find any bugs, please feel free to open an issue on the GitHub repository.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4