В качестве дополнительного ответа,
вы можете использовать это выражение ((?:http(s)?:\/\/)?[\w.&?=%#+:-]+)
Пример:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.util.List;
import java.util.ArrayList;
public class MyClass {
public static void main(String args[]) {
String url = "/9904667/java-string-plyetsya-pomoschy-regulyarnogo-vyrazheniya-odinochnoi-kosoi-chertoi-za-kotoroi-ne-sleduet-kosaya-cherta";
Pattern rgx = Pattern.compile("((?:http(s)?://)?[\\w.&?=%#+:-]+)");
Matcher m = rgx.matcher(url);
List<String> list = new ArrayList<>();
while (m.find())
list.add(m.group(1));
list.forEach(System.out::println);
}
}
Вывод:
https://stackoverflow.com
questions
51016377
java-string-spit-using-regex-with-single-forward-slash-not-followed-by-a-slash