No.7ベストアンサー
- 回答日時:
> 第3水準の「・」まででも大丈夫かも。
ほらインターネットじゃ文字化けしちゃった・・・
\f[\ -~]\f[、-熙]
これの「熙」を別の文字に変えてください。
IMEパッドの「文字一覧」を起動。
漢字一覧を一番下までスクロール。
「・」が連続してますが、そこから上へちょっと戻ると漢字がでてきます。
私はWindowsXP IME2002(8.1.4004.0)ですが、シフトJISの0xfc4bの文字が一番最後の漢字みたいです。
「熙」をその文字に変えてみてください。
ありがとうございます。
インターネット上で表現できない文字であれば、答えようがないですよね。(^^; MS-IMEへの切り替え方が分からないので、後で頑張ってみます。ATOK14を使っていまして、タスクバーにIME切り替え用のアイコンが無いです (ちなみに韓国語IMEも入っていて、それにはATOKパレット上から切り替えられます)。さらにATOKで文字一覧を出そうとしたのですが、ATOKパレットには、最小限の機能しか表示されておらず(ATOKパレットが短く、伸ばすボタンも無い)、ATOKパレット上で右クリックしても「最小化」「透明化」「テキストラベル」「縦置き」「タスクバーの追加アイコン」「設定」の6つしか出てきません。この質問の内容から外れるので、解決できなかったら、また別で質問します。m(__)m
No.11
- 回答日時:
>文頭に///が入ったり、[ や ] の前後に///が入ったり、/// が2つ以上入る行が多かったです。
これは予想していた結果です。そこから寄せられる補足を参考に、完成形に近づけようと考えていました。
“[ や ] の前後に・・・”これ [] は1バイトの文字ですよね?
英文と言うのを何を指しているのかを、まだ理解できません。
参考となる元の文章(十行程度)と、こうなって欲しい(こうならないで欲しい)結果を提示してもらえると回答しやすいのですが。特に半角の記号や空白の扱い。
(場合によっては、マクロを組めるかも)
よく分からないので、正規表現パターンの例。
[\x20-\x7E] ==> 制御コード以外のASCII文字(半角空白からチルダ (~)まで)
[0-9A-Za-z] ==> 英数字
[_A-Za-z]+ ==> 英単語( \w )
[■-●] ==> 2バイト文字
■は全角空白
●はIMEパットの文字一覧を表示して、一番最後までスクロールします。その後、徐々にスクロール・アップして黒にそっくりな漢字が出てきたらそれです。(OKWebでこの漢字をはじかれる)
ありがとうございました。
みなさんにたくさん回答、アドバイスを頂いたので、締め切りたいと思います。質問の仕方が悪く、さらにマクロや正規表現の基本的なことも十分に分からないまま質問して申し訳ありませんでした。みなさん本当に丁寧にありがとうございました。m(__)m
No.10
- 回答日時:
ANo.#7 の Bo_Bo です。
>秀丸のマクロは使ったことがないので、正規表現を使った置換でお願いできますか。
ANo.#7 で回答したマクロは、「正規表現を使った置換」です。(完成形ではありませんが)
"[\x20-\x7E]+" とあるのが正規表現で、英文の半角空白からチルダ (~)まで
( !"#$%&'()*+,-./0~9:;<=>?@A~Z[\]^_`a~z{|}~ )
を表しています。
適当なファイルを開いて、「検索」メニューから「置換」とし、
検索欄に ==> [\x20-\x7E]+
置換欄に ==> ///\0///
「正規表現」にチェック
「置換の前に確認」にチェック
として、試しに実行してみてください。英文が "///" で挟み込まれると思います。
(マクロは単にこれを表しているだけです。)
しかし、これには不備な点があります。
「英文と日本文の間で切り分けたい」と言うのを、何を「英文」とし、何を「日本文」とするかで不具合が出る可能性があります。
「日本文」と解釈して欲しい文の中に、半角の空白、括弧や円記号などがあると、正しい置き換えが出来ません。
何かの規則性が見つかれば、もう少しお役に立てるかもしれません。
(英文は必ず行頭から始まるとか、日本文は行の最後に記述されているとか)
ありがとうございます。
まず、前回の発言大変失礼しました。正規表現の基礎が分かっているという言葉も撤回させて下さい。[\x20-\x7E]+という表現の仕方、知らなかったです。実行させてみましたが、文頭に///が入ったり、[ や ] の前後に///が入ったり、///が2つ以上入る行が多かったです。
すみませんが、質問の内容を少し変更させて下さい。「1バイト文字、2バイト文字を漏れなく正規表現で表すにはどうすればいいのですか。」これでお願いできますか。これが僕の知りたいことなのに、僕の質問の仕方が悪いせいで、みなさんに非常に迷惑をかけているようです。「何かの規則性が見つかれば」ということですが、不規則なものも多く、それがANo.#7のお礼で「後でみなさんに頂いた答えをデータに合わせて少し編集すると思います」と言った理由です。まず1バイト文字と2バイト文字を漏れなく表現する方法が分かれば、実行しながらうまくいかないところは修正することができます。最初は、逆に追加していく方法でやっていたのですが、どんどん記号が並び、見るからに汚い正規表現になってしまいました。さらにまだまだ漏れがありそうです。ちなみに英文は必ず行頭から始まるかどうかですが、英文で始まるものと日本文で始まるものの両方がありますが、分けてやります。「日本文-英文」となっているものは、「英文-日本文」で使う正規表現の左右を逆にしてやればいいので簡単だと思います。
となれば、既に答えは出ていますか?
No.9
- 回答日時:
ANo.#7 の回答を訂正します。
// ASCII 文字列を '///' で囲む
$sb = searchbuffer;
#so = searchoption;
$rb = replacebuffer;
disabledraw;
replaceallfast "[\x20-\x7E]+", "///\\0///", regular; // 半角空白からチルダ '~' まで
//replaceallfast "[\x21-\x7E]+", "///\\0///", regular; // 半角空白を含まないバージョン
enabledraw;
setsearch $sb, #so;
setreplace $rb;
endmacro;
No.8
- 回答日時:
取りあえず、以下のマクロでどうでしょうか。
// ASCII 文字列を '///' で囲む
$sb = searchbuffer;
#so = searchoption;
$rb = replacebuffer;
replaceallfast "[\x20-\x7E]+", "///\\0///", regular; // 半角空白からチルダ '~' まで
//replaceallfast "[\x21-\x7E]+", "///\\0///", regular; // 半角空白を含まないバージョン
setsearch $sb, #so;
setreplace $rb;
endmacro;
ありがとうございます。
秀丸のマクロは使ったことがないので、正規表現を使った置換でお願いできますか。たぶん後でみなさんに頂いた答えをデータに合わせて少し編集すると思います。マクロだと、それが出来ないので、正規表現の方がありがたいです。でもこのマクロも後で参考にしてみます。それと、なぜか今まで「補足」に「お礼」を書いていたのですが、「お礼」に訂正です。
No.5
- 回答日時:
これではどうでしょうか。
検索:\f[\ -~]\f[、-熙]
置換:\1///\2
この回答への補足
ありがとうございます。
[\ -~]で記号を含む全ての1バイト文字(半角)、[、-熙]で全ての2バイト文字(全角)が表せているということですね? 参考までに、1バイトの記号とは、例えば、?!'";:-[]などです。2バイトの記号とは、例えば、「《〔…―などです。他の方と漢字の終わりの文字が違いますが、どうなんでしょう。ネットで調べていても、漢字の終わりは数パターンあり、どれを採用していいのか分かりませんでした。
No.3
- 回答日時:
英文が文字だけでなく記号やスペースもあることを考慮する必要がありますが、基本的には次の構文でいいでしょう。
置換前:^[a-zA-Z ].+\f[\?\!\.][ぁ-椀]+
置換後:\0///\1
ちなみに
置換前:大文字小文字のアルファベット、空白を数文字含み「.か?か!」で終わっている文字列と日本語の文字列を、「.か?か!」の前後で\0と\1の要素に分ける
置換後:検索結果の\0と\1を///で結ぶ
という構文です。
その他の区切り文字がある場合には[\?\!\.]の中にその要素を追加してやればいいでしょう。
helpにわかりやすい解説があります。とりあえずこれで試してみて下さい。コツがわかると思います。
この回答への補足
ありがとうございます。
そうです。そういうのが知りたいのです。(^^)
ちなみに正規表現の基本は理解していますし、自分なりに作ったりして試してもいます。だからコツは分かっています。但し、データは、10や100の量ではないので、一つ一つ見て調べて[\?\!\.]の中に追加していくというやり方は、ちょっと無理です。記号を含めて1バイト文字全てと2バイト文字全てを表す式が分かればありがたいです。
No.2
- 回答日時:
秀丸のヘルプに正規表現について 詳しく書かれてありますが、それは 読んだでしょうか?
[a-z^0-9]
とすると 半角の小文字アルファベットとカレットと半角の数字にマッチします。
これぐらいしか 該当しそうなのは なさそうですね。
この回答への補足
秀丸のヘルプは読みました。ネットでも調べて自分なりにも作ったりはしているのですが、全然自信が無いので聞いています。秀丸で漏れなく(全角、半角の記号も全て含めて)1バイト、2バイトを表す方法が分かればありがたいです。ネットで調べて簡単に出てこないということは、難しいかもしれません。
補足日時:2003/08/29 22:13お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・【大喜利】【投稿~1/31】『寿司』がテーマの本のタイトル
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストファイルで改行に置換...
-
ワードにて スペースを全て改行...
-
特定の文字を含む行だけ抽出す...
-
Accessでの置換
-
NotePad++ 改行された文を改行...
-
空白スペースをタブに置換する方法
-
不要な改行を一括削除する方法
-
置換でピリオドを一括削除出来...
-
ワードで各行の先頭に文字列を...
-
サクラエディタで連続改行を処...
-
テキストに縦に並んでいるデー...
-
ワイルドカード検索・置換対応...
-
秀丸の置換で数字で始まる行だ...
-
テキスト内で括弧内の文字を削除
-
CSVファイルをエクセルで開いた...
-
正規表現の置換で数値のみを抽...
-
WordVBA 置換処理での改行文字...
-
秀丸で指定した文字が入ってい...
-
PDF 入力途中で改行したい
-
Google form グーグルフォーム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ワードにて スペースを全て改行...
-
テキストファイルで改行に置換...
-
サクラエディタで連続改行を処...
-
Accessでの置換
-
正規表現の置換で数値のみを抽...
-
特定の文字を含む行だけ抽出す...
-
置換でピリオドを一括削除出来...
-
CSVファイルをエクセルで開いた...
-
空白スペースをタブに置換する方法
-
NotePad++ 改行された文を改行...
-
文字+改行コードの置換について
-
ワードで各行の先頭に文字列を...
-
テキストに縦に並んでいるデー...
-
不要な改行を一括削除する方法
-
秀丸の正規表現で文字列を切り...
-
秀丸で指定した文字が入ってい...
-
LibreOfficeのWriterで特定の文...
-
ワード2010 ひらがな 削除
-
秀丸エディタで改行を削除する...
-
WordVBA 置換処理での改行文字...
おすすめ情報