2014-06-12 50 views
0

我需要將使用PCRE cpp wrapper將我用Python編寫的正則表達式轉置爲C++。C++將Python正則表達式轉換爲PCRE

我原來的Python代碼執行以下操作:

self.reg = re.compile('(?<![/,\-\s])\s+(?![/,\-\s])') 

myfields = self.reg.split(line_of_text) 
... 

我試圖創建一個pcrecpp REG EXP如下:

pcrecpp::RE reg("(?<![/,\\-\\s])\\s+(?![/,\\-\\s])"); 

但它不工作。我的意思是PartialMatch()和FullMatch()不起作用。 此外,我還沒有找到一種類似於python re.split()的方法。 我對PCRE並不很有經驗。有沒有特定的語法?

有沒有反饋意見?

謝謝。

z。

+0

你的意思是轉換權利 – aelor

回答

1

pcrecpp::RE類使用/作爲分隔符(我相信..)。該語法與Perl的語法非常相似。

所以你很可能需要逃避正斜槓來解決你的問題。

pcrecpp::RE re("(?<![\\/\\s,-])\\s+(?![\\/\\s,-])").PartialMatch("foo bar") 
+0

嗨hwnd,你試過你的解決方案嗎?我剛測試過它,但FullMatch(「abc def」)返回false。 – Zyend

+0

好吧,它適用於PartialMatch(),但!所以看來我的問題是非轉義的「/」字符:( – Zyend

1

避開正斜槓。

像這樣:

(?<![\/,\-\s])\s+(?![\/,\-\s]) 
相關問題