我有字符串矢量:在一個字符串的末尾匹配特定號碼
s <- c('abc1', 'abc2', 'abc3', 'abc11', 'abc12',
'abcde1', 'abcde2', 'abcde3', 'abcde11', 'abcde12',
'nonsense')
我想一個正則表達式匹配只與abc
開始字符串,並用3
結束,11
,或者12
。換句話說,正則表達式必須排除abc1
,但不包括abc11
,abc2
,但不包含abc12
,依此類推。
我認爲這很容易做到前瞻斷言,但我還沒有找到辦法。有一個嗎?
編輯:感謝海報低於在原崗位指出了嚴重的不確定性。
實際上,我有很多字符串。它們都以數字結尾:一些在0,一些在9,一些在數字之間。我正在尋找一個匹配所有字符串的正則表達式,除了那些以字母后跟1或2結尾的正則表達式。(正則表達式還應該只匹配那些以abc
開頭的字符串,但這是一個簡單的問題。)
我試圖使用負向視圖斷言來創建這樣一個正則表達式。但我沒有任何成功。
感謝所有回覆和評論的人。受到你們幾個人的啓發,我最終使用了這種組合:grepl('^abc', s) & !grepl('[[:lower:]][12]$', s)
。
更清晰,+1! –