最近弄國科會計畫,所以都在碰 java 的東西,都在弄 sparql 跟 rdf 的東西,昨天弄懂一些基本的 sparql,然而利用 sarql 語法取出來的數值不是我想要的,所以利用正規表示,把字串取代了。 我想取代的字串如下:
( ?url = “LAB221″^^xsd:string ) 我只想要中間的 LAB221 的部份,然後我上網找了方法,總共可以使用兩種方法 第一種
String result = "( ?url = \"LAB221\"^^xsd:string )"; // compile pattern Pattern p = Pattern.compile("[^\"]+\"([^\"]+)\"[^\"]+"); // get matcher Matcher m = p.matcher(result.replaceAll("[
另一方法: /* 正規比對 */ String inputStr = result.replaceAll("[
- ]",""); String patternStr = “[\w]+”; Pattern pattern = Pattern.compile(patternStr); Matcher matcher = pattern.matcher(inputStr); boolean matchFound = matcher.find(); int k = 0; while(matchFound) { //System.out.println(matcher.start() + “-” + matcher.end()); for(int i = 0; i <= matcher.groupCount(); i++) { String groupStr = matcher.group(i); if(k == 1) { System.out.println(groupStr); } } if(matcher.end() + 1 <= inputStr.length()) { matchFound = matcher.find(matcher.end()); } else{ break; } k++; } [/code] 或者是可以加裝外掛 eclipse http://www.brosinski.com/regex/ reference http://www.eland.com.tw/www/javaland/2004_12/regular_javaclassroom.htm http://www.javaworld.com.tw/jute/post/view?bid=20&id=130126&sty=3&age=0&tpg=1&ppg=1#130126