我需要在一个字符串中选择一个范围直到第三个 / 存在。我现在有 ^([^\/]*\/[^\/]*\/[^\/]*\/ 但这只会在超过3的时候起作用 / 在字符串中。理想情况下,我需要选择所有字符直到第三个 / ,如果没有第三个,则选择“全部” / 如果有人能想出解决这个问题的办法那就太好了。谢谢!
/
^([^\/]*\/[^\/]*\/[^\/]*\/
drkbr07n1#
简单,但有点低效的方法是:
String input = "your/input/should/be/there"; String[] parts = input.split("/"); if (parts.length > 2) { return String.join("/", parts[0], parts[1], parts[2]); } else { return input; }
kx1ctssn2#
匹配从第三次出现的子串 / 可能少于3个 / s您可以使用范围量词使用此正则表达式:
^(?:[^/]*/){0,3}
正则表达式演示工作原理: ^ 我们从一行的开头开始我们用的是贪婪的量词 {0,3} 匹配前一组0到3次在组中,我们匹配0个或更多不匹配的字符 / 接着是一个 /
^
{0,3}
2条答案
按热度按时间drkbr07n1#
简单,但有点低效的方法是:
kx1ctssn2#
匹配从第三次出现的子串
/
可能少于3个/
s您可以使用范围量词使用此正则表达式:正则表达式演示
工作原理:
^
我们从一行的开头开始我们用的是贪婪的量词
{0,3}
匹配前一组0到3次在组中,我们匹配0个或更多不匹配的字符
/
接着是一个/