文字列のベクトルがあります:
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)
。