2013-07-15 3 views
0

У меня возникли проблемы с захватом определенного фрагмента текста.Специфическое Regex/Regex Условие

Мой вход:

PMT(B1+B144+B145*1/12.0,B148+B149*1*12.0,B1) 

Я хочу, чтобы захватить все B1 «с, но когда я пытаюсь сделать что я получаю B1, B144, B148, B1. Моим первым решением было проверить следующий символ. Поэтому я придумал регулярное выражение B1[\W]. Есть две проблемы с этим: один из них заканчивает захват символа без слов, а два он не работает с «= B1».

Как я могу захватить конкретные B1? Для этого примера я хочу первый и последний B1.

Edit: Я использую функцию replaceAll Java Строка

+1

У меня болят глаза. В любом случае, какой язык/аромат вы используете? – HamZa

+0

Я использую функцию строки java replaceAll – Taztingo

ответ

2

Использование B1(?!\\d), что означает:

  • B1: матч B1
  • (?!\\d): после цифры
+1

Неплохо благодарю вас. – Taztingo

2

Убедитесь, что вы используете границы слова:

String repl = str.replaceAll("\\bB1\\b", ""); 
Смежные вопросы