Найдите слова, начинающиеся со специального символа java
Я хочу найти слова, которые начинаются со знака " # " в строке в java. Между знаком и словом также могут быть пробелы.
Строка "hi #how are # you" должна выдавать результат в виде:
how
you
Я пробовал это с регулярным выражением, но все еще не мог найти подходящий шаблон. Пожалуйста, помогите мне в этом.
Спасибо.
5 ответов:
Используйте
#\s*(\w+)в качестве регулярного выражения.String yourString = "hi #how are # you"; Matcher matcher = Pattern.compile("#\\s*(\\w+)").matcher(yourString); while (matcher.find()) { System.out.println(matcher.group(1)); }Это выведет:
how you
Я думаю, что вам лучше всего использовать метод split для вашей строки (mystring.разделить ( '' )) и рассматривать оба случая отдельно. Регулярное выражение может быть трудно поддерживать и читать, если вы собираетесь иметь несколько человек, обновляющих код.
if (word.charAt(0) == '#') { if (word.length() == 1) { // use next word } else { // just use current word without the # } }
Попробуйте следующее выражение:
# *(\w+)Это говорит, матч # затем матч 0 или более пробелов и 1 или более букв
Вот нерегулярный подход к выражению...
Замените все вхождения#, за которыми следует пробел в вашей строке, на #
Моя строка.replaceAll ("\s#", "#")
Теперь разделите строку на маркеры, используя пробел в качестве разделителя
String [] words = myString.split (" ")
Наконец, повторите свои слова и проверьте наличие главного символа
Слово.startsWith ("# " )
String mSentence = "The quick brown fox jumped over the lazy dog."; int juIndex = mSentence.indexOf("ju"); System.out.println("position of jumped= "+juIndex); System.out.println(mSentence.substring(juIndex, juIndex+15)); output : jumped over the its working code...enjoy:)
Comments