我希望编写一个正则表达式来捕获Google content categories中的路径组,例如:
/Arts & Entertainment/Comics & Animation/
它构造一组组匹配项,例如:
全场0-40:/Arts & Entertainment/Comics & Animation
第1组:0-40:/Arts & Entertainment/Comics & Animation
第2组。0-21:/Arts & Entertainment
我尝试使用类似以下的内容:((\/.*?[^\/]*)\/.*?[^\/]*)
看到此in regex101,它将执行以上分组。
诀窍是,如果将另一个正斜杠部分添加到同一字符串中,则它应拒绝完全匹配它,因此:
/Arts & Entertainment/Comics & Animation/Anime & Manga
应该没有匹配项
答案 0 :(得分:2)
您可以提前进行否定查找:
^(?!(\/[^\/]+){3,})((\/.*?[^\/]*)\/.*?[^\/]*)
这将检查要匹配的字符串不包含三组或更多组的斜杠组...
答案 1 :(得分:0)
在正则表达式的开头添加一个保护符以测试三个斜杠或更多的斜杠的存在,并且在这种情况下失败:
^(?![^\/]*\/[^\/]*\/[^\/]*\/[^\/]*$)((\/.*?[^\/]*)\/.*?[^\/]*)
答案 2 :(得分:0)
这可能满足您的需求。
^(?:\/)([^\/]+)(?:\/)?([^\/]+)?(?:\/)?$
进行比赛
第1组将始终产生修剪后的第一个类别。
第2组将始终产生修剪后的第二类(如果存在)。
答案 3 :(得分:0)