[英]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.