Регулярное выражение для точно ИЛИ содержит - PullRequest
1 голос
/ 04 февраля 2020

Я хочу отправить местоположение в Google Geocoding API, поэтому я хочу заменить любой пробел или запятую в тексте (как это можно получить) на +.

, например, все эти образцы должен вернуть Глентворт + Ирландия :

Глентворт Ирландия

Глентворт, Ирландия

Глентворт, Ирландия

Я пытался с: place.replaceAll("/\\\\b ,/\\\\b|[ ,]", "+") Но я все же получил в последнем случае Glentworth ++ Ирландия (где это должен быть только один плюс).

Так что вопрос в том, как я могу заменить "," на плюс (и просто если <space>, не исключая точную замену пробела / запятой на плюс)?

Спасибо!

(или, другими словами, как я могу быть уверен, что место готово отправить как запрос к API ..)

PS Конечно, я могу сделать это с заменой, но не хочу!

Ответы [ 2 ]

1 голос
/ 04 февраля 2020

Просто вы можете сделать это с двумя заменами: сначала вы заменяете любое "," на "", а затем вы заменяете все пробелы на один плюс. Если вы хотите сделать это с одной заменой, вы можете использовать "[\,\s]\s*"

0 голосов
/ 04 февраля 2020

Если вы хотите заменить любую последовательность запятых и пробелов в строке одним знаком плюс, вы можете сделать это:

place.replaceAll("[, ]+", "+")

[, ] - это класс символов, содержащий запятую и пробел, что означает, что он будет соответствовать запятой или пробелу.

+ означает «предыдущий элемент один или несколько раз».

Так [, ]+ означает «одно или несколько вхождений запятых и / или пробелы ".

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