基于此示例:http://example.com/cat1/tag/this%20is%20page/cat2
,我需要制作一个正则表达式才能获得/tag/<nextSegment>
仅当此模式被其他段跟随或前面时,而不是单独使用。
我需要的结果始终为:http://example.com/tag/<fowardSegment>
仅当/tag/<fowardSegment>
位于其他段或不允许的字符之前或之后。
我尝试使用这个正则表达式:((?:/[A-Za-z0-9-]+)+)?(/tag/[A-Za-z0-9-%]+)+(/.*)?但是当它独自时,模式也被捕获(正如你在链接中看到的最后一个示例字符串)。
答案 0 :(得分:0)
也许你想要的是:@Query("select distinct m from Model m join m.userModel um join um.user u where u.username = ?1")
List<Model> findModelsByUserName(String userName);
修改强>
我在下面的评论中意识到需要匹配的额外内容:
/(?<=https?:\/\/.*)((?:\/[\w]+)*)((?:\/tag)(?:\/[\w%?=.-]+){2,})$/
JS中的一个示例用法:
/(?<=https?:\/\/.*|[\w_.]+)(?:((?:\/[\w]+)+)((?:\/tag)(?:\/[\w%?=.-]+))|((?:\/[\w]+))*((?:\/tag)(?:\/[\w%?=.-]+){2,}))$/
&#13;
上查看