繁体   English   中英

Java正则表达式-匹配字符串的开头

[英]Java regex - matching beginning of a string

我是regex的新手,因此无法正常工作。 以下行返回false,但我认为应该返回true。

Pattern.matches("^DOI", "DOI 10.1364/OL.36.002946")

我想要的是匹配前三个字母“ DOI”,而不管其后是什么。 我尝试删除锚点,但仍然不匹配。 谁能帮我解释一下?

只需使用

String yourVar = "DOI dskljdj";
if (yourVar.startsWith("DOI")) { ... }

它将检查您的字符串是否以DOI开头。

您可以尝试

System.out.println(Pattern.matches("^DOI.*", "DOI 10.1364/OL.36.002946"));

您希望您的文本以DOI开头,之后您只需要任意数量的任何字符即可.*

但是,如其他响应所述,如果仅检查字符串以固定前缀开头,则String.startWith会更好。 尽管Regexp可以使您执行更强大的功能,但是在性能方面(更复杂的代码方面)更痛苦。

这是最好的路线

String.startsWith("DOI");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM