0

我想从给定的字符串中提取数据,我已经设法做到了,但遇到了一些困难。

我会给你两个字符串:

"ESS23300RGR","Boorum & Pease 23 Series Columnar Book, Record, 300 Page, Black/Red (23-300-R)","UnbeatableSale, Inc (Amazon Marketplace)","180.80","6.09","http://www.amazon.com/gp/offer-listing/B000DLBVU4/ref=olp_page_next?ie=UTF8&shipPromoFilter=0&startIndex=15&sort=sip&me=&condition=new","http://www.amazon.com/gp/offer-listing/B000DLBVU4/ref=olp_page_next?ie=UTF8&shipPromoFilter=0&startIndex=15&sort=sip&me=&condition=new"
"WLJ36210WGR","Basic Round Ring View Binder, 362 Line, 3 Ring, 1" Capacity, 8-1/2" x 5-1/2" Sheet Size, White","Gov Group (Amazon Marketplace)","3.61","7.70","http://www.amazon.com/gp/offer-listing/B0006OF55A/ref=olp_seeall_fm?ie=UTF8&shipPromoFilter=0&startIndex=0&sort=sip&me=&condition=new","http://www.amazon.com/gp/offer-listing/B0006OF55A/ref=olp_seeall_fm?ie=UTF8&shipPromoFilter=0&startIndex=0&sort=sip&me=&condition=new"

这是我使用的表达式:regexChecker( "[\w\s&\(\)-^,]{3,}" , longString);

使用它,我成功地分离了第一个字符串,而第二个没有,因为它使用 , 和 " 作为某些部分的一部分。

如何从类似于第一个字符串的第二个字符串中提取数据?

需要提取的数据有:SKU,Name,Competitor,Price,Shipping,URL,SourceURL

提前致谢。

4

2 回答 2

3

尝试 :

String[] tabS = myLine.substring(1, myLine.lenght() -1).split("\",\"");

删除所有重要的"

于 2012-07-13T12:11:51.740 回答
0

检查以下代码。它给了我想要的两个输入字符串的结果。

StringBuilder testt = new StringBuilder("\"ESS23300RGR\",\"Boorum & Pease 23 Series Columnar Book, Record, 300 Page, Black/Red (23-300-R)\",\"UnbeatableSale, Inc (Amazon Marketplace)\",\"180.80\",\"6.09\",\"http://rads.stackoverflow.com/amzn/click/B000DLBVU4\",\"http://rads.stackoverflow.com/amzn/click/B000DLBVU4\"");

 Pattern varPattern = Pattern.compile(",\"", Pattern.CASE_INSENSITIVE);

 Matcher varMatcher = varPattern.matcher(testt);

 List<String> list = new ArrayList<String>();

 int startIndex = 0, endIndex = 0;
 boolean found = false;

 while (varMatcher.find()) {
  endIndex = varMatcher.start();
  if (startIndex == 0) {
   list.add(testt.substring(startIndex, endIndex));
  } else {
   list.add(testt.substring(startIndex + 1, endIndex));
  }
  startIndex = varMatcher.start();
  found = true;
 }
 if (found) {
  if (startIndex == 0) {
   list.add(testt.substring(startIndex));
  } else {
   list.add(testt.substring(startIndex + 1));
  }
 }
 for (String s : list) {
  System.out.println(s);
 }
}
于 2012-07-13T12:29:44.047 回答