2014-04-30 69 views
0

我想用java正則表達式從文本框中捕獲特定的單詞模式。我有vb正則表達式,但它在java.i中無效想要知道它應該如何修改爲java。修改視覺基本正則表達式在java中工作

這是我VB reqex

class\s+([^\s]+)[\s\r\n{] 

我沒有在Java中同樣這個way.but它總是說沒有發現MATHES但VB做。

這是java代碼

String text=jTextArea2.getText(); 
Pattern pattern = Pattern.compile("(?i)class\\s+(\\S+)[\\s{]"); 
Matcher matcher = pattern.matcher(text); 
String found =matcher.group(1); 
System.out.print(found); 
+0

它似乎是一個禮貌的正則表達式我 –

回答

0

在Java字符串中,您需要避開反斜槓,因此\s變爲\\s。現在讓我們來改善你的正則表達式位:

  • 讓我們增加了i修改,以匹配不區分大小寫(?i)
  • [^\\s]+相同\\S+
  • \\s還包括換行符所以[\\s\\r\\n{]成爲[\\s{]

您的最終正則表達式可能如下所示:(?i)class\\s+(\\S+)[\\s{]

+0

我編輯我的答案。即使你的正則表達式不適合我 – user3588824

+0

@ user3588824請學習閱讀手冊或做一些研究。以下是[使用代碼](http://ideone.com/UdNnK0)的方法。 – HamZa

0

正則表達式將工作的偉大,你必須做的唯一事情是逃避\\\爲Java字符串。