字符串startswith DRIVELETTER:\

KS1*_*KS1 0 java string startswith

Java String.startsWith()中的快速问题需要某种通配符.

我需要检查,看是否有链接开头http://或本地驱动器(c:\,d:\等),但我不知道的驱动器号.

所以我想我需要类似的东西 myString.startsWith("?:\\")

有任何想法吗?

干杯

为此欢呼,但我想我需要在此基础上继续努力.

我现在需要迎合

1.http://
2.ftp://
3.file:///
4.c:\
5.\\
Run Code Online (Sandbox Code Playgroud)

这太过分了,但我们想确保我们抓住了所有这些.

我有

if(!link.toLowerCase().matches("^[a-z]+:[\\/]+.*")) {
Run Code Online (Sandbox Code Playgroud)

适用于任何字符或字符后跟一个:( 示例http:,ftp:,C :),其中包括1-4但我无法满足\\

我能得到的最近的就是这个(它有效,但在regEx中得到它会很好).

if(!link.toLowerCase().startsWith("\\") && !link.toLowerCase().matches("^[a-z]+:[\\/]+.*")) {
Run Code Online (Sandbox Code Playgroud)

Jac*_*ack 5

您将需要一个正则表达式,该表达式不受以下方式支持startsWith:

^[a-zA-Z]:\\\\.*

^   ^     ^    ^
|   |     |    |
|   |     |    everything is accepted after the drive letter
|   |    the backslash (must be escaped in regex and in string itself)
|  a letter between A-Z (upper and lowercase)
start of the line
Run Code Online (Sandbox Code Playgroud)

然后你可以使用 yourString.matches("^[a-zA-Z]:\\\\")