ドットを RegEx dot:に変更するには、検索文字列を解析する必要があります。単一のドットは正規表現のメタ文字であり、任意の文字を意味することに注意してください。たとえば、文字列のすべてのドットを次のように置き換えることができます.
\\.
\\.
そのすべての仕事をしたくない場合は、検索文字列java\\.
として送信してください
より詳しい情報:
コード例:
public static void main(String[] args) {
String fileContent = "Hi i am learning java.";
String searchString = "java";
Pattern p = Pattern.compile(searchString);
Matcher m = p.matcher(fileContent );
while(m.find()) {
System.out.println(m.start() + " " + m.group());
}
}
次のように出力されます。17 java
public static void main(String[] args) {
String fileContent = "Hi i am learning java.";
String searchString = "java\\.";
Pattern p = Pattern.compile(searchString);
Matcher m = p.matcher(fileContent );
while(m.find()) {
System.out.println(m.start() + " " + m.group());
}
}
次のように出力されます: 17 java.
(最後のドットに注意してください)
編集:非常に基本的な解決策として、唯一の問題はドットであるため、文字列内のすべてのドットを次のように置き換えることができます\\.
public static void main(String[] args) {
String fileContent = "Hi i am learning java.";
String searchString = "java.";
//this will do the trick even if the "searchString" doesn't contain a dot inside
searchString = searchString.replaceAll("\\.", "\\.");
Pattern p = Pattern.compile(searchString);
Matcher m = p.matcher(fileContent );
while(m.find()) {
System.out.println(m.start() + " " + m.group());
}
}