2013-08-27 58 views
0

我一直在使用斯坦福NLP從輸出我需要提取其下方的圖案正則表達式匹配這種模式

open bracket followed by NP or NNP or NNS etc 

輸入字符串

(NP (DT the) (NNP sample) (NN program)) 

結果字符串

匹配的文本解析一些文本文件
the) sample) program) 

我試過下面的正則表達式,但它不符合我所需的模式

test.replaceAll("//(//NP|//(//JJ|//(//NNS|//(//NNP|//(//NN|//(//DT|//(//CD|//(//FW|//(//WHNP|//(//WDT|//(//VBN|//(//PRP", "") 
+0

什麼是所有的斜槓? – FDinoff

+1

@Vulcan他們回頭看我。 – FDinoff

+1

您正在使用錯誤的'斜槓'來轉義,請使用'\'而不是'/' –

回答

0

嘗試"\\(NP|\\(JJ|\\(NNS|\\(NNP|\\(NN|\\(DT|\\(CD|\\(FW|\\(WHNP|\\(WDT|\\(VBN|\\(PRP"

斜線是錯誤的。使用\\而不是/

+0

它給了我「無效的轉義序列」錯誤 – user2702274

+0

我的意思是\\在字符串中。 – doptimusprime

+0

我已經使用\\只有 – user2702274

2

我不知道你爲什麼在那裏有所有的斜線。

試試這個:

test = test.replaceAll("\\((NP|JJ|NNS|NNP|NN|DT|CD|FW|WHNP|WDT|VBN|PRP)", ""); 

下面是這段代碼的工作(正確)的live demo

+0

在線程中獲取此錯誤異常「主」 java.util.regex.PatternSyntaxException:鄰近索引1 ( ^ \t在java.util.regex.Pattern.error(Pattern.java:1713) \t在未關閉的java.util.regex.Pattern中組。接受(Pattern.java:1571) – user2702274

+0

我已經通過複製粘貼測試了這個,所以沒有轉錄錯誤的機會,並且它完美地工作。 – Bohemian