使用 Java 正則運算式,我想找到“C ”這個詞,它不應該只有“C”是肯定的。
下面的代碼應該解釋其余部分,請參見此處
import java.util.*;
import java.util.regex.*;
public class MyClass {
public static void main(String args[]) {
String test = "Framework, c and Visual Studio IDEs.";
Pattern p = Pattern.compile("(?i).*\\bc\\ \\ \\b.*");
Matcher m = p.matcher(test);
if(m.find()) {
System.out.println("Pattern1 True");
}
p = Pattern.compile("(?i).*\\Bc. . \\B.*");
m = p.matcher(test);
if(m.find()) {
System.out.print("Pattern2 True");
}
p = Pattern.compile("(?i).*\\bc $\\b.*");
m = p.matcher(test);
if(m.find()) {
System.out.println("Pattern3 is True but how to return false");
}
p = Pattern.compile("(?i).*\\Bc\\B.*");
m = p.matcher(test);
if(m.find()) {
System.out.println("Pattern4 is True");
}
if(test.toLowerCase() .contains("c ")) {
System.out.print("Contains c True");
}
if(test.toLowerCase().contains("C")) {
System.out.print("Contains C True");
}
}
}
uj5u.com熱心網友回復:
您可以使用
Pattern p = Pattern.compile("(?i).*\\bc\\ \\ \\B.*"); // C
Pattern p = Pattern.compile("(?i).*\\bC\\b(?!\\ {2}).*"); // C only
這里,
\b- 單詞邊界c\ \- 一個c字串\B- 非單詞邊界,在右側,必須有字串結尾或非單詞字符(?!\ {2})- 如果在當前位置的右邊有一個字串,則匹配失敗的否定前瞻。
uj5u.com熱心網友回復:
這似乎適用于檢測輸入字串中任何位置的“C ”或“C ”。
String regex = ".*[cC]\\ \\ .*";
java.util.regex.Pattern.matches(regex, "This is NOT c !");
結果在true, 但
java.util.regex.Pattern.matches(regex, "This is NOT c!");
結果false。
uj5u.com熱心網友回復:
艱難的時間只為 C 省略字符
p = Pattern.compile("(?i).*\\bC\\b(?!\\ |#|\\$|\\*|\\^|%|&).*");
m = p.matcher(test);
if(m.find()) {
System.out.println("C is true");
}
p = Pattern.compile("(?i).*\\bc\\ \\ \\B.*");
m = p.matcher(test);
if(m.find()) {
System.out.println("C is true");
}
p = Pattern.compile("(?i).*\\bc\\#\\B.*");
m = p.matcher(test);
if(m.find()) {
System.out.println("C# is true");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535251.html
標籤:爪哇正则表达式细绳
