[^(][0-9]+)
とかになると思うが「前の文字」にも条件があるのでヒットする範囲は必然的に「前の文字」を含んでしまうのではないか。
なお試しに書いてみて全然ヒットしないと思ったら例文の括弧が全角だった。(半角括弧だとエスケープが必要なことがあるので注意。)
▽2
●
a-kuma3 ベストアンサー |
正規表現と言っても、実装する言語というかライブラリによって差異があるので、一概にこうとは言えません。
希望している内容を素直に書けるのは、「否定後読み」を持っているタイプです。
「否定後読み」を使うと、こんな感じになります。
(?<!(|^)[1-9][0-9]*)
全角のかっこが分かりにくいので、赤くしてます。
数字は、項番のような気がするので、「ゼロで始まらないもの」と解釈してます。
例えば、javascript だと、こんな感じになります。
(_ => { const RE = /(?<!(|^)[1-9][0-9]*)/; [ "(1)これは例文です。", "2)それも例文であります10)。", "例文11)その3です。", ].forEach(s => { const m = RE.exec(s); console.log(m); }); })();
結果は、こう。
null // (1)にはヒットしない Array [ "10)" ] // 行頭の 2)にはヒットしない Array [ "11)" ]