DEV Community

loading...

Using matches & regex in Twig!

Jack H. Peterson
・1 min read

Problem

You may be having trouble with using regex and links in twig/php!

Typical Solution

Generally, You'd want to escape a slash!
Example:
/path/to/resouces/
would look something like this in js:
/\/path\/to\/resources\//
/ === delimiter
\/ === escaped slash

This doesn't play nicely with twig!
I figure twig is trying to be smart and escape things for you.
but I'm not really sure whats going on.

Real Solution

(Thankfully, php provides a way to work around this issue.)[https://www.php.net/manual/en/regexp.reference.delimiters.php]

Alternate delimiters:
/foo/ | #foo# | +foo+ | %foo% | <foo> | (foo) | {foo} | [foo]
All of the above delimiters are valid!

Applied Solution

This means, if we take our URL:
/path/to/resouces/
We just need to wrap it with a delimiter which isn't used in the string.
Example:
{/path/to/resouces/}
That's it! The regex should work how you'd like it to.

Wrap Up

Regex is weird.
Twigs undocumented behavior is weird.
together they're an afternoon of frustration.

Discussion (0)