辞書の訳語を表示する際、正規表現を使って、次の文字列を含む文字列をゴシック表示しようとしています。
そこで次のようにしたのですが、1行目はうまく置換されますが、2行目は全く駄目です。
$yakugo =~ s/(\[再帰\]|\[現分\]|\[代動\]|\[過分\]|\(再\)|\[規則変化\]|\[不規則変化\])/<B>$1<\/B>/g;
$yakugo =~ s/(\[\W+と共に\]|\[\W+詞\W+\]|\[次の\W+\]|\[ふつう\W+\])/<B>$1<\/B>/g;
2行目のような置換の仕方は規則破りなのでしょうか?済みませんが、どなたか、これに替わる書法で、2行目のような意図を達成する正規表現の式をお教え下さい。
No.1
- 回答日時:
こんな感じになりました。
$yakugo =~ s/(\[[^\[]*と共に[^\]]*\]|\[[^\[]*詞[^\]]*\]|\[次の[^\]]*\]|\[ふつう[^\]]*\])/<B>$1<\/B>/g;
ご親切に解説をいただきありがとうございました。
とても勉強になりました。とほほさんのサイトで勉強をしていたつもりなのですが、いざ自分の頭で実践する時はわからないものですね。[ ] で囲まれた文字を文字クラスとする、というのははじめて実践するので、ためになりました。ましてクラスの後ろに*をつけるとは!!ビックリです。さすがにここまではどのお教室を覗いてもみつからないような。。。
また、正規表現でまたお世話になる予感がしますので、またその節はよろしくお願いします(^_^)
No.2
- 回答日時:
追記。
ちょっと縮めて見ました。
$yakugo =~ s/(\[[^\[]*)(と共に|詞|次の|ふつう)([^\]]*\])/<B>$1$2$3<\/B>/g;
ただ、これだと[正確がふつうなひと]というように前後に他の言葉が入った場合でもHITしてしまいますが。
ありがとうございました。
<ただ、これだと[正確がふつうなひと]というように前後に他の言葉が入った場合でもHITしてしまいますが。
いや、むしろそれを望んでいました。お教え頂いた書式での効果は劇的に現れましたが、まだ場合によって[xxxxx]から次の[xxxxxx] までの間も全部ゴシックになってしまう場合もあるのですが、いろんな記号がそこに混じってしまっているので、何が原因だかまだ調査しきれていません。でもとても効果が上がりました。
お教え頂いたものをじーっと見つめて私のと比較しているのですが、たとえば一部分を抜き出して比較してみました:
(moon night さん→ ) |\[ [^\[]*詞[^\]]* \]|
(わたし→ ) |\[ \W+詞\W+ \]|
わたしは\W+を使っていますが、moon night さんの方法は[^\[]* ですね。これはどういう意味の設定をしているのですか?
済みません、正規表現の基本知識が甘いのです。解説をいただければ幸いです。
No.3ベストアンサー
- 回答日時:
[^\[]*
これは、
\[ 以外の文字、となります。
それ([]の中の文字 を *で)が0個以上続いた といった意味です。
[^\[]+ とすると前後に何か文字がはいってないとHITしないので。
(+が一つ以上という意味なので)
参考URL:http://tohoho.wakusei.ne.jp/wwwperl1.htm#Expr
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- その他(プログラミング・Web制作) テキストエディタで複数行にわたる文字列の行頭に番号を振る方法 4 2023/03/11 12:57
- 英語 提示した名言について(並列表現の文法規則) 4 2023/06/02 09:41
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- 英語 複数形を含む単語がハイフンで繋がれ形容詞化した表現の文法規則について 2 2022/12/13 12:17
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- 日本語 日本語の「-3の規則」 1 2022/05/12 13:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
perlのプログラミング 部分入れ...
-
Strawberry Perl for Windows ...
-
アルファベットに付いて質問し...
-
Perlで同じフォルダにある任意...
-
perlでリテラル値はメモリにど...
-
ペプシコーラとコカ・コーラとD...
-
perlをバージョンアップしたら...
-
openした後、closeしないでプロ...
-
#!/usr/bin/perlで書きだしたCG...
-
Perlのエラーについてご教授く...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
perlで2次元配列をサブルーチ...
-
perlのrequireの動き方について...
-
perlについての質問
-
Blenderについて
-
Perl の外部モジュールの利用方法
-
perl このテキストファイルを簡...
-
Perlでファイルの末尾から指定...
-
秀丸での一括変換について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストファイルで提出とは?
-
openした後、closeしないでプロ...
-
perlをバージョンアップしたら...
-
INDIRECT 横に再度抽出したい
-
Perl の外部モジュールの利用方法
-
Perlで特定文字列から特定文字...
-
Perlのエラーについてご教授く...
-
bashスクリプト
-
Strawberry Perl for Windows ...
-
perlで2次元配列をサブルーチ...
-
TeraPadエディターの操作方法に...
-
アルファベットに付いて質問し...
-
perlのflock関数でロックをかけ...
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
Wallpaper Engineでおすすめの...
-
Perlで時間の計算
-
perlのrequireの動き方について...
-
perlでリテラル値はメモリにど...
-
画像が表示でnull; this.src
おすすめ情報