Найти слова начинаются со специального символа java - PullRequest
8 голосов
/ 25 февраля 2011

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

Строка "hi #how are # you" выдаст вывод как:

how
you

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

Спасибо.

Ответы [ 5 ]

12 голосов
/ 25 февраля 2011

Используйте #\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
0 голосов
/ 03 февраля 2016
     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:)
0 голосов
/ 25 февраля 2011

Вот подход с нерегулярными выражениями ...

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

    myString.replaceAll("\ s #", "#")

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

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

  3. Наконец итерируйте свои слова и проверьте начальный символ

    word.startsWith ("#")

0 голосов
/ 25 февраля 2011

Я думаю, что вам лучше всего использовать метод split для вашей строки (mystring.split ('')) и рассматривать два случая отдельно. Regex может быть трудно поддерживать и читать, если вам нужно, чтобы несколько человек обновляли код.

if (word.charAt(0) == '#') {
  if (word.length() == 1) {
    // use next word
  } else {
    // just use current word without the #
  }
}
0 голосов
/ 25 февраля 2011

Попробуйте это выражение:

# *(\w+)

Это говорит, соответствует #, затем соответствует 0 или более пробелов и 1 или более букв

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