2012-09-28 67 views
2

我有以下文本格式的文件:簡單的regex - (集團用C匹配++)

Blah blah Blahhh<TAB SPACE -(/t character)>1234<TAB SPACE -(/t character)>some other crap blah 

文本可能看起來像:

Saturday Evening 1234 Beautiful 

我現在用的是<regex>庫,並我想使用捕獲組來捕獲「1234」。

我想:

"\\t(\\d+)\\t" 

但是,當我打印結果,它顯示了「\ t」的字符與數字一起。有任何想法嗎?

+0

測試regexe在線:HTTP://www.regexplanet。 COM /高級/ JAVA/index.html的 – SChepurin

回答

3

\b\d+\b包含單詞邊界。這將忽略在當前正則表達式中匹配的選項卡或空格。

http://regexr.com?32a07

或者,如果你想匹配的標籤,使用斷言,他們將匹配的標籤,但沒有捕捉它們:

(?<=\t)\d+(?=\t) 
0

一些細節會很有用,比如你用來執行搜索和提取結果的代碼,但我的猜測是你正在查看錯誤的match_result索引:你應該查看元素1.請參閱match_results 'operator[]