replaceAll в groovy без работы для длинного предложения - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть этот абзац (это просто случайный текст), который я хочу удалить в последней части абзаца. Я пытался использовать replaceAll, но он работает только для более коротких предложений, например, Вирус, вызывающий COVID-19

, но я хочу удалить: Вы можете быть заражены вдыхая вирус, если вы находитесь в непосредственной близости от человека, у которого есть COVID-19, или касаясь загрязненной поверхности, а затем ваших глаз, носа или рта. \ n \ nБольше людей, заболевших COVID-19, будут испытывать легкие умеренные симптомы и выздоровление без специального лечения.

"Вирус, вызывающий COVID-19, в основном передается через капли, образующиеся, когда зараженный человек кашляет, чихает или выдыхает. Эти капли слишком тяжелы, чтобы их можно было повесить воздух и быстро падают на полы или поверхности. \ n \ nВы можете заразиться, вдыхая вирус, если находитесь в непосредственной близости от человека, у которого есть COVID-19, или касаясь загрязненной поверхности, а затем ваших глаз, носа или рот. \ n \ nБольше людей, заболевших ХОБЛ-19, будут испытывать симптомы от легкой до умеренной степени и выздоравливать без вас. t специальная обработка. "

  String comment = "The virus that causes COVID-19 is mainly transmitted through droplets generated when an infected person coughs, sneezes, or exhales. These droplets are too heavy to hang in the air, and quickly fall on floors or surfaces.\n\nAlso, SOS stands for Style Or Service and we?re here to help you with all your shopping needs. Feel free to contact us at 1.877.765.3009 or e-mail us at sos@solesociety.com. #mysolesociety Have a great day! Feel free to contact us at 855-435-5050 or customerservice@vincecamuto.com if you have any further questions or concerns. Have a great day!"

//produces the right result.
println(comment.replaceAll("Also, SOS stands", " ")) 
//this does not produce the right result, instead it prints the entire paragraph with this part included.
println(comment.replaceAll("Also, SOS stands for Style Or Service and we?re here to help you with all your shopping needs. Feel free to contact us at 1.877.765.3009 or e-mail us at sos@solesociety.com. #mysolesociety Have a great day! Feel free to contact us at 855-435-5050 or customerservice@vincecamuto.com if you have any further questions or concerns. Have a great day!", " ")) 

Пожалуйста, помогите с предложениями о том, как go об этом

1 Ответ

3 голосов
/ 24 апреля 2020

Символ ? имеет особое значение в регулярных выражениях. Если вы хотите включить его буквально, вы должны замаскировать его.

Например, используя \\? вместо ?.

или окружив всю строку \\Q и \\E, что означает заключить строку в кавычки (т. Е. "\\Qstring with question marks? This works?\\E".

. Другим решением будет использование Pattern.quote(pattern), который безопаснее, поскольку маскирует все, включая \\Q и \\E .

Если вам не нужны регулярные выражения для сопоставления с образцом, лучше всего использовать comment.replace(target, replacement). Это быстрее, чем с помощью регулярного выражения.

Посмотрите на javado c!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...