我需要能够创建一个正则表达式来搜索Java中的任何字符串并匹配这个特定的表达式。正则表达式搜索字符串?
寄存器匹配: ./添加名称= < ---我需要匹配任何字符串正则表达式,我读入文件,并且它通常会通过13
在位置1我要找对于任何字符串的前10个字符,因为我必须返回等号后面的名称来创建一个文件名,因此整行看起来将如下所示。
问:为什么我的表达式不匹配任何字符串?
文件行:
./ ADD NAME=FILE02
...more records would go here...
./ ADD NAME=FILE332
...more records would go here...
./ ADD NAME=FILE3
...more records would go here...
./ ADD NAME=FILE-1A
...more records would go here...
代码:
private void locatedFileName(String s) {
Pattern p = Pattern.compile("./ ADD name=");
Matcher m = p.matcher(s);
boolean b = m.matches();
if (b) {
System.out.println("True");
} else {
System.out.println("False");
}
}
**private void locatedFileName(String s) {
if (s.matches("./ ADD name=")) {
System.out.println("True");
} else {
System.out.println("False");
}
}**
所有代码:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class test {
test(){
}
private void locatedFileName(String s) {
if (s.matches("./ ADD name=")) {
System.out.println("True");
} else {
System.out.println("False");
}
}
private void testReadTextFile() {
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\itpr13266\\Desktop\\TestFile.txt"));
String line = null;
//Will read through the file until EOF
while ((line = reader.readLine()) != null) {
System.out.println(line);
locatedFileName(line); //test to see if the "./ Add name=" is found in any of the strings
}
} catch (IOException e) {
System.out.println("Try-Catch Message - " + e.getMessage());
e.printStackTrace();
}
}
public static void main(String[] a) {
test t = new test();
t.testReadTextFile();
}
}
,我试图
最新代码:
代码:
final String REGEX = ("(?i)\\./\\s+ADD\\s+NAME\\s*=");
final String REGEXtemp = ("\\s+ADD\\s");
//Pattern p = Pattern.compile(REGEX);
Pattern p = Pattern.compile(REGEXtemp);
Matcher m = p.matcher(s);
boolean b = m.matches();
if (b) {
System.out.println("True");
} else {
System.out.println("Reg not found in string!");
}
什么你的问题确切吗? – javamonkey79
别忘了'.'和'/'是特殊字符,需要转义 –
正则表达式在这里似乎过分了。为什么不测试一下字符串的开头是否与搜索字符串匹配,然后返回字符串的其余部分? – ooga