Кто-нибудь видит что-то не так с этим регулярным выражением, которое у меня есть. Все, что я хочу, - это найти любые вхождения и заменить их тем, какое слово выберет пользователь. Это выражение только изменяет некоторые вхождения, и когда оно делает, оно удаляет предшествующий пробел, и я предполагаю, что объединяет его со словом перед. Также он не должен заменять тогда, там, их, они и они c
private final String MY_REGEX = (" the | THE | thE | The | tHe | ThE ");
userInput = JTxtInput.getText();
String usersChoice = JTxtUserChoice.getText();
String usersChoiceOut = (usersChoice + " ");
Pattern pattern = Pattern.compile(MY_REGEX, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(userInput);
while (matcher.find())
{
userInput = userInput.replaceAll(MY_REGEX, usersChoiceOut);
JTxtOutput.setText(userInput);
System.out.println(userInput);
}
Хорошо, этот новый код, кажется, заменяет все нужные слова и ничего больше, также делает это без проблем с пробелами.
private final String MY_REGEX = ("the |THE |thE |The |tHe |ThE |THe ");
String usersChoiceOut = (usersChoice + " ");