2013-07-08 2 views
0

Я хочу найти позицию начала и конца рисунка на моем тексте.pattern in regex java

Я использую следующий код:

Pattern _pat=Pattern.compile("20. Eslaminejad MB, Nikmahzar A, Piriea A. The structure of " 
+"Human Mesenchymal Stem Cells differentiated into cartilage in micro mass culture system. Yakhteh 2006, 8(3): " 
+"162-171."); 

Matcher _match=_pat.matcher("19. Eslaminejad MB, Eftekhari-Yazdi P. Mesenchymal stem " 
+"cells: In vitro differentiation among bone and cartilage cell " 
+"lineages. Yakhteh. 2007; 9(3): 158-169." 
+"20. Eslaminejad MB, Nikmahzar A, Piriea A. The structure of " 
+"Human Mesenchymal Stem Cells differentiated into cartilage in micro mass culture  system. Yakhteh 2006, 8(3): " 
+"162-171." 
+"21. Pioletti DP, Montjovent MO, Zambelli PY, Applegate L. " 
+"Bone tissue engineering using foetal cell therapy. Swiss " 
+"Med Wkly. 2006 ; 136(35-36): 557-560."); 


    while(_match.find()){ 
     System.out.println(_match.start()); 
     System.out.println(_match.end()); 
    } 

К сожалению, модель не находит строку в моем тексте.

+3

Это не то, как вы используете регулярное выражение. Посмотрите на эту страницу: http://www.regular-expressions.info/tutorial.html – JREN

+2

В строке поиска у вас больше пробелов между словами, чем в обычном поиске. Например, между «структурой» и «из» – selig

+2

используйте регулярное выражение, только если вы не можете сделать это с помощью обычных строковых функций. – Anirudha

ответ

2

Видимо, то, что вам нужно, это не регулярное выражение, а просто

int start = inputString.indexOf(stringToSearch); 

Это даст вам начальную и конечную позицию рассчитывается как

int end = start+stringToSearch.length(); 

Вы можете захотеть нормализовать пропуски или выполните другие типичные операции нормализации перед попыткой совпадения.

+0

+1 правый, но случай может отличаться? – Anirudha

0

Ваша проблема в другом количестве пробелов. Сравните:

The structure of 

от картины с

The structure of 

из текста.

Кстати, хотя вы используете шаблоны, вы не используете никаких функций, которые предоставляют шаблоны, поэтому в вашем случае вы можете использовать простой метод String.contains().