正規表現で コロン” . ”の連続をどう区別するか悩んでいます
例えば以下のような文字列
(行頭から始まる文章)
----------------------------------------
.おはよう
..こんばんにゃ
...さよなら
----------------------------------------
コロン” . ”の連続を区別し、そして
文末まで全部取りこむ必要があるのが難しいところです
こうすると上の三行の例の全部が含まれてしまう
^[\.?].*
コロン” . ”1個だけで始まる文の
.おはよう だけ 文末まで取得
コロン” . ”2個で始まる文の
..こんばんにゃ を 文末まで取得
と区別したいときはどうしたらいいのでしょう?
説明するとややこしいのですが
用途は 秀丸のアウトラインの強調文字表現をしたいため
No.2
- 回答日時:
まず最初に
「.」 は「ピリオド」です。「ドット」と呼ぶこともあります。
コロンは「:」です。ピリオドを縦に二つ並べた形をしています。
プログラム中で使うのなら、「先頭の連続する . 」にマッチさせ、その長さを求めればいいのですが、
強調設定用だと、一つずつパターンを記述することになります。
そのパターンは次の通りです
(1) . 1つ
(1-1) 「.」 だけ
(2-2) 「.」 の直後に 「.でない文字」 が有り、
(2) . 2つ
(2-1) 「..」 だけ
(2-2) 「..」 の直後に 「.でない文字」 が有り、
(3) . 3つ
(3-1) 「...」 だけ
(3-2) 「...」 の直後に 「.でない文字」 が有り、
これを
強調1 : (1-1)のパターン
強調1 : (1-2)のパターン
強調2 : (2-1)のパターン
強調2 : (2-2)のパターン
強調3 : (3-1)のパターン
強調3 : (3-2)のパターン
と設定すれば、それぞれに色分けされます。
今、手許に秀丸が無いので、確認まではできないのですが。
^[\.?].*
の[] の中では、各種特殊記号は、特殊な意味を持たなくなります。( ヘルプを参照のこと )
「.」 は「任意の一文字」という意味を失い、ただの「. という文字」になります。
なので、 現状では? は「?と言う文字」になり
?なんのこと?
にも該当するはずです。
※ 例外は \ と ] です。 \. が「 \と.」と解釈されるのか、エスケープされて「.」と解釈されるのかは、確認できてません。
また、「特殊文字としての . 」 は「通常文字 . 」にもマッチするので、「..こんばんにゃ」は
[\.?]にマッチ: .
.*にマッチ: .こんばんにゃ
となります。これを防ぐには、 今 .* を使っている部分を、 「. で始まらない」と変える必要があります
合せると
^\.[^.].*$
これが、(1-2)のパターンです。
後ろに続かない
^\.$
が(1-1)です。
No.3
- 回答日時:
コロン” . ”1個だけで始まる文の場合
^[\.](?!\.).*
または
^[\.]{1}(?!\.).*
コロン” . ”2個だけで始まる文の場合
^[\.]{2}(?!\.).*
コロン” . ”3個だけで始まる文の場合
^[\.]{3}(?!\.).*
否定的先読みで指定した回数以上のコロンがないものを検索します。
No.4ベストアンサー
- 回答日時:
No.3の回答者です。
No.2の回答者さんが指摘されたようにコロンではなくピリオドですね。
回答の一部に質問文をコピペしているので、確認しないで回答に利用
していました。
正しくは
ピリオド” . ”1個だけで始まる文の場合
^[\.](?!\.).*
または
^[\.]{1}(?!\.).*
ピリオド” . ”2個だけで始まる文の場合
^[\.]{2}(?!\.).*
ピリオド” . ”3個だけで始まる文の場合
^[\.]{3}(?!\.).*
でしたね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
正規表現
-
CSVファイルの中で、「 , 」カ...
-
エクセルにMicrosoft Barcode C...
-
CSVの定義
-
word差し込み印刷 半角カタカ...
-
エクセルでの”々”の扱い
-
VBA EXCEL あるセルの中の一...
-
スペースで区切られた氏名から...
-
perl でエラー:Wide character...
-
PHP カンマをエスケープしたい...
-
エクセルで数値を全角文字(カ...
-
CString から LPCTSTRの型に変換
-
WORDで改ページすると時々グレ...
-
EXCELからCSVにすると余計なカ...
-
住宅にカナを入力する際に丁目...
-
COBOL・全角判定
-
英数字のみ全角から半角に変換
-
char型全角数字から、int型半角...
-
IEからEdgeへの移行に伴うIMEの...
-
Excelの中に全角ひらがな、漢字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
これは大きなお世話ですよね? ...
-
マッチングアプリで一言メッセ...
-
正規表現
-
なんで真面目な出会いを求める...
-
マッチ箱(マッチ棒の入った箱)...
-
金額にマッチする正規表現について
-
シェルスクリプト [[ $number =...
-
条件にマッチした行数のカウント
-
リナックスの grepコマンド ...
-
perlで記号除去を行いたいので...
-
正規表現 URL抽出「 [\\/\\b]{0...
-
UNIXコマンドのパターンマッチ...
-
正規表現
-
Tinderのマッチングアプリ辞め...
-
pythonの正規表現、全角カタカ...
-
正規表現について VB6
-
正規表現 .+? について
-
日本語環境下でのバックスラッ...
-
Perl 正規表現に関して
-
配列内の要素をパターンマッチする
おすすめ情報
まとめてお礼します。
” . ” は 確かにコロンではないです。
スムーズに言い間違えると あとも釣られて間違うもんですよね(笑)
#1の回答へ
完全にはダメでした
#2の回答へ
同じ方法を考えていました
原理はわかるのですが、実際、その方法でもできましたが
#3方法がわかりやすかった
#3の回答
否定先読み というのがあるんですね。
おかげ様でシンプルで実現できました。
素早く解決でき、みなさんいろいろありがとうございました!