0

以下代码检查相同的变量部分/en(^$|.*)是否为空或任何字符。所以表达式应该匹配/enAND/en/bla/en/blue。但是当检查 just 时表达式不起作用/en

"/en".matches("/en(^$|.*)")

有没有办法让这个空的正则表达式检查(^$)用java执行?

编辑

我的意思是:有没有办法让这段代码返回true

4

2 回答 2

4

您当前正在做的是检查是否en后跟字符串的开头然后是字符串的结尾(这没有意义,因为字符串的开头必须是第一个)或其他任何内容。这应该有效:

"/en".matches("/en(|.*)")

或者只是使用?(可选):

"/en".matches("/en(.*)?")

但这毫无意义,因为*是零或更多(因此空白字符串将匹配.*),就应该这样做:

"/en".matches("/en.*")

编辑:

您的代码已经返回 true,但它与该^$部分不匹配,而是.*(类似于上面)。

我应该指出,您也可以使用startsWith,除非您的真实数据更复杂:

"/en".startsWith("/en")
于 2013-04-17T10:21:13.297 回答
3

有没有办法让这段代码返回true?

"/en".matches("/en(^$|.*)")

该代码确实返回true。去尝试一下!

但是,您的模式是不必要的复杂。尝试:

"/en".matches("/en.*")

这将匹配/en任何内容(包括任何内容)。

于 2013-04-17T10:20:48.207 回答