url rewriting – Standard Regex syntax doesn’t work in WordPress rewrite rule
I’ve run into a regex issue while adding a rewrite rule into a WordPress plugin. This blog has been helpful and the redirect works correctly after following this: https://brightminded.com/blog/mastering-wordpress-rewrite-rules/
However, I’m facing a challenge on this section:
That’s all fine, the redirect works perfectly. But I want to change the regex in the rewrite rule so that instead of matching city/{anything}/
it instead matches ‘city/?{anything}`. And I’m running into an issue:
The blog regex is invalid, yet it works
The regex in the blog is ^city/([^/]*)/?
and this works perfectly in the wordpress rewrite rule, however when I paste this into any online regex tool such as regex101.com or regexr.com, they say that the regex isn’t valid:
Valid regex expressions do not work
I can easily create a regex that works correctly such as: ^city\/\?.*
which matches to city/?{anything}
just like I want. However, this regex doesn’t work in the WordPress rewrite rule. When I use this regex, and update permalinks in CMS, the redirect stops working.
So far, I can’t find any documentation for using regex in WordPress so I would presume it follows the de facto standard. But please can anyone shed light on this? Does wordpress use a different standard for Regex and where is the documentation for this? Or is there a simple syntax error that I’m missing?
Leave an answer