#java #awt
Вопрос:
Я создаю редактор с использованием java, в котором моя опция поиска и замены не работает, пока я заменяю c на java, а затем после замены моего кода показывает, что java не полностью заменяет в текстовых файлах.
Итак, вот методы поиска, которые я создал в своем коде с помощью patcher и matcher
public void findingValue1() {
p = Pattern.compile(p.quote(tf1.getText()));
m = p.matcher(tavalue);
if (m.find(x)) {
y = 0;
char ch[] = tavalue.toCharArray();
for (int i = 0; i < m.start(); i )
if (ch[i] == 'n')
y ;
ta.select(m.start() - y, m.end() - y);
r1 = m.start() - y;
r2 = m.end() - y;
x = m.end();
user = true;
} else
cannotFound();
f1.toFront();
}
public void findingValue2() {
try {
s1 = ta.getText();
s1 = s1.replaceAll("r", "");
ta.setText(s1);
ta.setCaretPosition(pos);
p = Pattern.compile(tf2.getText());
m = p.matcher(s1);
if (m.find(pos)) {
ta.requestFocus();
ta.select(m.start(), m.end());
String str1, str2;
str1 = tf3.getText();
str2 = tf2.getText();
if (str1.length() > str2.length())
pos = m.end() 1;
else
pos = m.start() 1;
} else
cannotFound();
} catch (Exception ex) {
cannotFound();
}
}
Я знаю, что это неправильный способ задавать вопросы, но мой код очень огромен.
Кто-нибудь может объяснить, почему это происходит?
Комментарии:
1. может ли мне понадобиться показать полный код ?
Ответ №1:
Этот…
p=Pattern.compile(tf2.getText());
… использует текст, введенный в tf2
регулярное выражение, для соответствия. Этот
символ является одним из нескольких, которые имеют особое значение в регулярных выражениях. Если вы хотите рассматривать вводимые пользователем данные как буквальный текст, независимо от того, какие символы в нем содержатся, вам нужно процитировать его или иным образом указать это. Например,
p = Pattern.compile(Pattern.quote(tf2.getText()));
Комментарии:
1. сэр, это все равно не работает для меня.. Когда я заменяю java на c , он заменяет только c, т. Е… Java
2. Сэр, когда я пытаюсь использовать некоторые цифры, например, заменить 111 на AAA, он успешно работает