我已經做了一個解決方法,你會用它來首先格式化你的文本,你的正則表達式的工作方式。我可能會錯過一些情況,如果是這種情況,只需添加一條評論解釋,我會盡力掩蓋它。
這裏是我做了什麼:
public static void findAd(String text){
text = text.replaceAll("\\b(\\w) (?!\\w{2,})", "$1");
text = text.replaceAll("(\\w+)(?:\\.)", "$1.");
text = text.replaceAll("(\\w+)(?: dot)", "$1.");
return text;
}
所以,當你調用此方法,如:
System.out.println(findAd("bla bla bla bla m c . s e r v e r . c o m bla bla bla"));
System.out.println(findAd("m c . s e r v e r . c o m bla bla bla"));
System.out.println(findAd("bla bla bla m c . s e r v e r . c o m"));
System.out.println(findAd("m c . s e r v e r . c o m"));
System.out.println(findAd("m c dot s e r v e r dot c o m"));
System.out.println(findAd("bla bla bla m c dot s e r v e r dot c o m bla"));
你會得到作爲輸出:
bla bla bla bla mc.server.com bla bla bla
mc.server.com bla bla bla
bla bla bla mc.server.com
mc.server.com
mc.server.com
bla bla bla mc.server.com bla
然後,只需用你的測試稱呼你的表情:
if (yourMethodThatCheckForAd(find(text))) ...
或者只是添加我到您現有的方法中提供的代碼 :)
請告訴我們的代碼,並添加一個標記,用於指定使用的是 –
什麼[A-ZA-Z0-9編程語言\ - \。] +模擬匹配? – cutzero
這是Java語言。對不起,但我沒有源代碼。我正在使用插件。 [a-zA-Z0-9 \ - \。] +會在.com(或者smth else)或者mc之後匹配文本。 (或其他) – Sprunkas