したがって、私は正規表現がまったく初めてで、Java を使用java.util.regex
して入力文字列の句読点を見つけようとしています。(1) !, ?, ., ... はすべて有効な句読点であり、(2) 「<」と「>」は何か特別な意味を持ち、句読点としてカウントしないでください。プログラム自体が疑似ランダムにフレーズを作成するので、ランダム プロセスを実行する前に文末の句読点を削除したいと考えています。
任意の句読点を使用して単語全体を一致させることができますが、マッチャーはその単語のインデックスを提供するだけです。言い換えると:
Pattern p = Pattern.compile("(.*\\!)*?");
Matcher m = p.matcher([some input string]);
末尾に a がある単語を取得します"!"
。例えば:
String inputString = "It is a warm Summer day!";
Pattern p = Pattern.compile("(.*\\!)*?");
Matcher m = p.matcher(inputString);
String match = inputString.substring(m.start(), m.end());
結果は --> 文字列一致 ~ "day!" になります。
Matcher
しかし、私はインデックスだけを持ちたい"!"
ので、それを分割することができます。
おそらくケースを作成し、String.substring(...)
取得する可能性のある句読点の種類ごとに使用できますが、これを行うための正規表現の使用に間違いがあることを願っています.