---
name: "rgxg_utils_escape_string"
section: "3"
platform: "linux"
package: "librgxg-dev"
version: "0.1.2-7"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rgxg_utils_escape_string"
---

# rgxg\_utils\_escape\_string(3)

escape the given string for use in a regular expression

## NAME

rgxg\_utils\_escape\_string - escape the given string for use in a regular expression

## SYNOPSIS

```
#include <rgxg/utils.h>
int rgxg_utils_escape_string (const char *src, size_t size,
char *regex, rgxg_options_t options);
```

## DESCRIPTION

**rgxg\_utils\_escape\_string**() generates the (extended) regular expression that matches at most *size* bytes (or up to the first null byte) of the given string *src*, by escaping the regular expression special characters. *src* must be valid and not NULL.

The generated regular expression is written to the character string *regex*, including the terminating null byte ('\\0'), unless **RGXG\_NONULLBYTE** is set. If *regex* is NULL the return value is the number of characters (excluding the terminating null byte) that would have been written in case *regex* has been initialized. Note that the functions assume an arbitrarily long *regex* string, callers must **ensure** that the given string is large enough to not overflow the actual space.

*options* is either zero, or set to the following macro:

- **RGXG\_NONULLBYTE**

  Do not add the terminating null byte ('\\0') to the *regex* string.

## RETURN VALUE

**rgxg\_utils\_escape\_string**() returns the number of characters (excluding the terminating null byte) written to *regex*.

## AVAILABILITY

This function is available since rgxg 0.1.

## SEE ALSO

[**regex**(7)](/regex/7.md), [**rgxg\_utils\_alternation**(3)](/rgxg_utils_alternation/3.md).

## AUTHOR

Hannes von Haugwitz \<hannes@vonhaugwitz.com\>
