人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【正規表現】行頭ではなく、開きカッコのない、閉じカッコだけがある数字の連続」にマッチする正規表現を教えて下さい
以下のような例文があるとき、
・「行頭ではなく、開きカッコのない、閉じカッコだけがある数字の連続」にマッチする正規表現を教えて下さい。
・数字は半角、カッコ類は全角に統一してあるものとします。

【例文】
------------------------------------
(1)これは例文です。
2)それも例文であります10)。
例文11)その3です。
------------------------------------
この例だと、
10)
11)
だけにマッチするようにしたいです。

●質問者: サロン日焼け
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● deep_one

[^(][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)" ]

サロン日焼けさんのコメント
ありがとうございます! 求めていたのはこれです!

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ