Regex 正则表达式匹配2条件
目前,我正在WordPress插件上使用这个名为redirection的2正则表达式来过滤某些被记录的URL (食物)匹配URL中任何包含食物词的内容 (.js)|(.css))$以匹配URL末尾的任何.js或.css 如何将这2个正则表达式与和组合成1,以便获得下面的预期输出 预期输出:Regex 正则表达式匹配2条件,regex,Regex,目前,我正在WordPress插件上使用这个名为redirection的2正则表达式来过滤某些被记录的URL (食物)匹配URL中任何包含食物词的内容 (.js)|(.css))$以匹配URL末尾的任何.js或.css 如何将这2个正则表达式与和组合成1,以便获得下面的预期输出 预期输出: https://example.com/food/test/apple.css - match https://example.com/food/fruit/pineapple.css - match htt
https://example.com/food/test/apple.css - match
https://example.com/food/fruit/pineapple.css - match
https://example.com/food/fruit/apple.php - NOT match
https://example.com/food/new/strawberry.js - match
我已经试了好几个小时了,但还是不能成功。我不擅长正则表达式。我如何使它与(食物)和((.js)|(.css))一起工作$
我在下面尝试了这个组合,但失败了。请帮帮我。提前谢谢
(food)&((.js)|(.css))$
(food)+((.js)|(.css))$
(food)/((.js)|(.css))$
你可以用
'~.*food.*\.(?:js|css)$~'
看
如果/food/
必须在那里使用
'~.*/food/.*\.(?:js|css)$~'
如果只是测试匹配项,请删除第一个*
详细信息
-0+字符,尽可能多*
-文字子字符串食品
-0+字符,尽可能多*
-\(?:js | css)
后跟
或js
css
-字符串结尾$
^https?://.*食品。*\(?:css|js)$
使用这种方法将是:
“~^https?://.*食品。*\(?:css|js)$~”
解释
断言字符串的开头^
将http与可选的s匹配,然后https?://
://
匹配任何字符零次或多次,然后匹配食物,然后再匹配任何字符零次或多次*食物。*
匹配一个点,后跟一个与css或js匹配的非捕获组,并断言字符串的结尾\(?:css|js)$
这在正则表达式测试仪上非常有效。但不幸的是,它在我的WordPress插件上不起作用。@Null您必须使用除正斜杠以外的分隔符,例如
~
。我已经在我的回答中添加了这一点。如果URL不在字符串的开头,则可以省略^
锚定。从http开始