
「***************** Version 2 *****************」
↑という文字列を評価して「2」を取りたい為に「/^\*+\s*Version\s+(\d+)\s*\*+\s*$/」という正規表現を使用しています。
「***************** バージョン 2 *****************」
同様に↑という文字列を評価して「2」を取りたいので「/^\*+\s*[バージョン]\s+(\d+)\s*\*+\s*$/」としましたがうまく動きません。
日本語文字列が正しく動作していないようです。
何らかの形でエンコードして当てはめればよいと思うのですが、どのような値を設定すればよいでしょうか?
「バージョン」以外にも「ユーザ」、「日付」などの日本語を同様にマッチさせる必要があるため、変換方法を教えて頂けると助かります。
perlはほぼ使えないため、WebやWindows上でのアプリケーションで指定文字列を渡すと変換できる物をお願い致します。
(perlは入っているためコマンドを叩けばOKというのであればそれでも構いません)
与えられる「バージョン」という文字の文字コードはSJISになります。
No.3ベストアンサー
- 回答日時:
一応、検索に有効なキーワードを入れてあったんだけど
> Unmatched [ in regex; marked by <-- HERE in m/^\*+\s*バー
「ダメ文字」で検索。例えば
http://sites.google.com/site/fudist/Home/grep/sj …
ーに[が含まれているため、ここで[が始まっているのに対応する]が無い、というエラー。
[]で括ってあったときは、[の中に[を書くと、「[という文字」の意味になるので、エラーにならなかった。
ー[] とすると、 「ー」の1バイト目+ [[] となって、「ー」の1バイト目+「[という文字」 となって、ーにマッチする。
あるいは、\Q \Eでメタ文字を無効にする。
> そのややこしい部分をどのように記述すればよいのかを質問したつもりでした。
「perl unicode」で検索。例えば、以下のところとか。
http://www.lr.pi.titech.ac.jp/~abekawa/perl/perl …
http://www.rwds.net/kuroita/program/Perl_unicode …
回答ありがとうございます。
下記のように\Qと\Eで該当文字を囲む事で正しい結果が得られました。
/^\*+\s*\Qバージョン\E\s+(\d+)\s*\*+\s*$/
No.2
- 回答日時:
> /^\*+\s*[バージョン]\s+(\d+)\s*\*+\s*$/
なんで [バージョン] と [] がついてるのでしょうか?
最初のを[Version]としたらどんなことになるか、おわかりでしょうか?
> perlはほぼ使えないため、WebやWindows上でのアプリケーションで指定文字列を渡すと変換できる物をお願い致します。
> (perlは入っているためコマンドを叩けばOKというのであればそれでも構いません)
すみません。おっしゃってることの意味がわかりません。
なにからなにに変換するのでしょうか?
> 与えられる「バージョン」という文字の文字コードはSJISになります
入力もPerlのスクリプトもShift_JISで書かれているのなら、以下の点に注意すればそのまま記述するだけです。
・日本語一文字は2バイトの文字の並びだと解釈される。
固定の文字列ならあまり問題無い。
*,+等の量指定子、[]等の文字セットでは、注意が必要。量指定子は後半の1バイトだけの繰り返し、[]では前半の1バイトか後半の1バイトのどちらかにマッチする、という意味になる。
・いわゆる「ダメ文字」がある。よく言われる\以外にも、リストを表す@、正規表現で使われるメタ文字も対象になるので、かなりの文字が該当する。
日本語も一文字として扱いたいのなら、Unicode文字列として変換して...となります。
どうするかはややこしいので検索でもして調べてください。
お答えありがとう御座います。
No.1の方のお礼に書かせていただきましたが、「[」、「]」は不要でした。
>なにからなにに変換するのでしょうか?
perl内ではsjisは使用できないかと思い、何らかの文字コードに変換するのかと思い書かせていただきました。
>どうするかはややこしいので検索でもして調べてください。
そのややこしい部分をどのように記述すればよいのかを質問したつもりでした。
>固定の文字列ならあまり問題無い。
とのお答えもありましたが、No.1の方のお礼に書いたとおりどうにもうまくいきません。
意図がわかりずらい文章で申し訳ありませんが、よろしくお願い致します。
No.1
- 回答日時:
フリーのサクラエディタ(
http://sakura-editor.sourceforge.net/)の検索・置換の正規表現では
「^\*+\s*[バージョン]\s+(\d+)\s*\*+\s*$」でなく
「^\*+\s*バージョン\s+(\d+)\s*\*+\s*$」であればOKです。
(サクラの検索・置換では”/”は不要)
日本語の周りの”[”、”]”は不要では?
お答えありがとう御座います。
確かに「[」、「]」は不要でした。
「/^\*+\s*バージョン\s+(\d+)\s*\*+\s*$/」として実行した所↓のエラーがでました。
「Unmatched [ in regex; marked by <-- HERE in m/^\*+\s*バー <-- HERE ジョン\s+(\d+)\s*\*+\s*$/ at 」atの後は略させていただきました。
こちらで調べた所「ー」は「\ー」としろという情報がありましたのでこちらも試しましたが、うまくいかない状態です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlの構文でカンマの意味が分...
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授く...
-
Perlでファイルの末尾から指定...
-
openした後、closeしないでプロ...
-
perl の open について教えてく...
-
Perl言語について。
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl 正規表現でエラー
-
演算子と括弧
-
Perlでの改造方法
-
if等判定文での定数、変数の記...
-
msgboxに何故括弧がないの!
-
ある書籍で、見つけました、per...
-
型を調べる
-
perl tr での変数の使い方
-
日本語での正規表現について
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
Excel VBAでリンク切れをチェッ...
-
エクセルVBAでシートモジュール...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォー...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォーム...
-
Excel VBA 定義されたプロージ...
-
vba userFormのSubを標準モジュ...
-
標準モジュールを削除したい。(...
おすすめ情報