Найдите слова, начинающиеся со специального символа java



Я хочу найти слова, которые начинаются со знака " # " в строке в java. Между знаком и словом также могут быть пробелы.



Строка "hi #how are # you" должна выдавать результат в виде:



how
you


Я пробовал это с регулярным выражением, но все еще не мог найти подходящий шаблон. Пожалуйста, помогите мне в этом.



Спасибо.

457   5  

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 или более букв

Вот нерегулярный подход к выражению...

  1. Замените все вхождения#, за которыми следует пробел в вашей строке, на #

    Моя строка.replaceAll ("\s#", "#")

  2. Теперь разделите строку на маркеры, используя пробел в качестве разделителя

    String [] words = myString.split (" ")

  3. Наконец, повторите свои слова и проверьте наличие главного символа

    Слово.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

    Ничего не найдено.