繁体   English   中英

Java正则表达式匹配词

[英]Java Regex matching word

我有一个文件,即时阅读和搜索单词。

名字=杰克

活动多普勒名称= 200ms

在搜索即时消息时

if(line.contains("name")

该语句找到两条线,但我只需要它找到第一行,因为我有一条单独的语句来细化“活动多普勒名称”。 因此,我需要有关正则表达式的帮助,以检查它在“名称”一词前是否为空格。 这些是我想出的几个选项,但是不起作用

if(line.contains("\\s+\bname")

要么

if(line.contains("^\\s+name")

谢谢

String.contains不使用正则表达式作为参数。

您可以使用:

// matches the whole line:
//            ┌ start of input
//            | ┌ any or no whitespace (as your original pattern suggests)
//            | |  ┌ literal "name"
//            | |  |   ┌ any other character sequence to follow, or no characters
line.matches("^\\s*name.*");

注意

如果要对此进行改进,可以声明一个常量Pattern ,并在每行匹配/反向引用。

例如:

// similar as before, but captures the value for "name" 
// and validates with "=characters" after it
static final Pattern NAME_VALUE = Pattern.compile("^\\s*name\\s*=\\s*(.+)");
// ...
Matcher m = NAME_VALUE.matcher(line);
if (m.find()) {
    // "jake"
    String myValue = m.group(1);
}

如果“ name”始终是您行中的第一个单词,则可以与/ ^ *(name)/匹配

暂无
暂无

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

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