
「***************** 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での入れ子文字列削除
-
if等判定文での定数、変数の記...
-
perl 正規表現でエラー
-
日本語での正規表現について
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
Sub Workbook_Open()でユーザー...
-
標準モジュールを削除したい。(...
-
「デバイスは PRN を初期化でき...
-
VBSがコンパイルエラーになりま...
-
Excel VBAで、ユーザーフォー...
-
VBAで旧字体を異字体に一括で変...
-
Oracleのデータベースに接続で...
-
ユーザー定義関数に#NAME?が返...
-
Attempt to free unreferenced ...
-
AIX6でファイルのタイムスタン...
-
Excel VBA 定義されたプロージ...
-
サブルーチンやif分以外での中括弧
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
perl 正規表現でエラー
-
perlで読める文字にデコード?...
-
例外処理のフローチャートの記...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
Excel VBAで、ユーザーフォーム...
-
ユーザー定義関数に#NAME?が返...
-
Excel VBAで、ユーザーフォー...
-
VBAで別モジュールへの変数の受...
-
Excel VBA 定義されたプロージ...
-
Excel VBAでリンク切れをチェッ...
-
VBでグローバル変数を宣言するには
-
標準モジュールを削除したい。(...
-
VBSがコンパイルエラーになりま...
-
vba userFormのSubを標準モジュ...
-
モジュールからフォームのボタ...
-
モジュールの最大数はいくつな...
-
モジュールとクラスの違いって...
-
【vba】フォームに書いてあ...
-
LCD ディスプレイを Raspberry ...
おすすめ情報