正規表現を使用して指定されたパターンを切り詰めようとしていますが、代わりに必要な文字も置き換えます。この場合、境界を指定しても役に立ちません。
String name = "Dr.Dre" ;
Pattern p = Pattern.compile("(Mr.|MR.|Dr.|mr.|DR.|dr.|ms.|Ms.|MS.|Miss.|Mrs.|mrs.|miss.|MR|mr|Mr|Dr|DR|dr|ms|Ms|MS|miss|Miss|Mrs|mrs)"+"\\b");
Matcher m = p.matcher(name);
StringBuffer sb = new StringBuffer();
String namef = m.replaceAll("");
System.out.println(namef);
入力:Dr.DreまたはDrDreまたはDr.Dre
>出力(期待):DreまたはDreまたはDre
編集:
助けてくれてありがとう、しかし私が直面している正規表現の問題はほとんどありません:プログラム:
String name = "Dr. Dre" ;
Pattern p = Pattern.compile("(Mr\\.|MR\\.|Dr\\.|mr\\.|DR\\.|dr\\.|ms\\.|Ms\\.|MS\\.|Miss\\.|Mrs\\.|mrs\\.|miss\\.|MR|mr|Mr|Dr|DR|dr|ms|Ms|MS|miss|Miss|Mrs|mrs)"+"\\b");
Matcher m = p.matcher(name);
String namef = m.replaceAll("");
System.out.println(namef);
上記のプログラムの場合、次のように出力を受け取ります。目的の出力が次の場合のDre:Dre