0

我想在我的文本上找到模式的位置开始和结束。

我使用以下代码:

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());
    }

不幸的是,模式没有在我的文本中找到字符串。

4

2 回答 2

2

显然,您需要的不是正则表达式,而只是

int start = inputString.indexOf(stringToSearch);

这将为您提供开始位置,结束位置计算为

int end = start+stringToSearch.length();

在尝试匹配之前,您可能想要规范化空格或执行其他典型的规范化操作。

于 2013-07-08T08:35:03.387 回答
0

您的问题出在不同数量的空间中。相比:

The structure   of

从模式与

The structure of

从文中。

顺便说一句,尽管您使用的是模式,但您并没有使用模式提供的任何功能,因此在您的情况下,您可以使用简单的String.contains()方法。

于 2013-07-08T08:36:19.480 回答