以下代码检查相同的变量部分/en(^$|.*)
是否为空或任何字符。所以表达式应该匹配/en
AND/en/bla
等/en/blue
。但是当检查 just 时表达式不起作用/en
。
"/en".matches("/en(^$|.*)")
有没有办法让这个空的正则表达式检查(^$)用java执行?
编辑
我的意思是:有没有办法让这段代码返回true
?
您当前正在做的是检查是否en
后跟字符串的开头然后是字符串的结尾(这没有意义,因为字符串的开头必须是第一个)或其他任何内容。这应该有效:
"/en".matches("/en(|.*)")
或者只是使用?
(可选):
"/en".matches("/en(.*)?")
但这毫无意义,因为*
是零或更多(因此空白字符串将匹配.*
),就应该这样做:
"/en".matches("/en.*")
编辑:
您的代码已经返回 true,但它与该^$
部分不匹配,而是.*
(类似于上面)。
我应该指出,您也可以使用startsWith
,除非您的真实数据更复杂:
"/en".startsWith("/en")
有没有办法让这段代码返回true?
"/en".matches("/en(^$|.*)")
该代码确实返回true。去尝试一下!
但是,您的模式是不必要的复杂。尝试:
"/en".matches("/en.*")
这将匹配/en
任何内容(包括任何内容)。