2017-01-24 23 views
0

Для примера: ввода String является

Input = "Hello there, How are you? Fine!! @xyz" 

и выход будет

Output = "Hello there myWord How are you myWord Fine myWord myWord myWord xyz" 

я попробовал с Pattern класса и Matcher класса, но он заменяет только один тип рисунка и str.replace(".","myWord");

+0

Вы имеете в виду всех вхождений символов в фигурных Скобки или фигурные скобки также являются символами, которые вы хотите заменить? –

+0

Я хочу удалить фигурные скобки тоже ... –

+0

Спасибо за ответы –

ответ

2

вы можете использовать [^\\w\\s]

\\s*[^\\w\\s]\\s*: \\s* означают одно или больше пространства

[^\\w\\s]: ^ не улавливают \\w и \\s

\\w означают a-zA-Z0-9_

\\s означают пространство


String s="Hello there, How are you? Fine!! @xyz"; 
    System.out.println(s.replaceAll("\\s*[^\\w\\s]\\s*", " myWord ")); 

Выход:

Hello there myWord How are you myWord Fine myWord myWord myWord xyz 

Чтобы избежать какой-либо другой специальный символ, который не должен быть заменен, то просто добавьте их в этот [] например \\s*[^\\w\\s:;\\[\\]]\\s*, как указано на @ brso05


Demo

const regex = /\s*[^\w\s\]\[;]\s*/g; 
 
const str = `Hello there, How are you? Fine!! ; @xyz []`; 
 
const subst = ` myWord `; 
 
const result = str.replace(regex, subst); 
 
console.log(result);

0

Вы можете сделать что-то вроде этого:

String str = "Hello there, How are you? Fine!! @xyz"; 
    str = str.replaceAll("[\\{\\.\\?!\"><',/\\\\\\|@#$%^&\\*~`\\-_=+\\}]", "myWord"); 
    System.out.println(str); 

Выход:

Здравствуйте theremyWord Как youmyWord FinemyWordmyWord myWordxyz

+1

Зачем нужен правильный ответ? http://stackoverflow.com/help/privileges/vote-down – brso05