Я пробовал решить эту проблему в течение почти 3 дней. И я до сих пор не знаю, как его решить.
Существует входная строка (например):Пытаться разобрать и заменить шаблон в Java с помощью regex
In software, a stack overflow [apple] occurs when too much memory [orange] is used on the call stack [banana].
The call stack [pear] contains a limited amount of memory, often determined at the start of the program [apple].
То, что я хотел бы сделать, это заменить слово [apple]
, [orange]
, [banana]
, [pear]
к чему-то вроде <img src="apple.jpg">
, <img src="orange.jpg">
, <img src="banana.jpg">
, <img src="pear.jpg">
.
На самом деле, после почти 1 день, я узнал, регулярное выражение, которое может выяснить, шаблон, начиная с "["
и заканчиваться "]"
, который (?<=\\[)\\w+(?=])
Я не знаю, как хранить список слов ([Apple], [оранжевый]...).
Должен ли я использовать HashMap
или ArrayList
??
И как выполнить петлю через HashMap
и ArrayList
для замены на соответствующую строку в «самое быстрое время»?
В этом примере список содержит только 4 вещи. Но на самом деле это может быть более 500 вещей в списке.
Хотя я обнаружил шаблон, я все еще не могу решить эту проблему, потому что я не знаю, как найти весь шаблон во входной строке, а затем узнать весь шаблон, а затем проверить, является ли этот шаблон в списке и затем замените правильную строку.
Обратите внимание, что в этом примере [apple]
заменяет на <img src="apple.jpg">
, но на самом деле xxx
.jpg может быть не таким же в [xxx
]. Но у меня есть список этого сопоставления.
Я действительно хочу решить эту проблему, пожалуйста, помогите мне решить и предоставить образец кодирования.
спасибо.
Используйте 'HashMap'. –
sircapsalot
На самом деле, это первый раз, когда я использую регулярное выражение, я действительно не знаю, как его реализовать, можете ли вы привести пример? – jjLin
Я воспользуюсь еще одним ответом на решение, используя RegEx, если вы застряли на этом. Возможно даже представить примеры времени – sircapsalot