- 締切済み
emacsの正規表現で最短一致するには
Emacs 20.7.2を使っています。 replace-regexpにて最短一致(最短マッチ)を行いたいの ですが、その表現が分かりません。 .*? を試してみましたが、最長一致となってしまいます。 FAQかもしれませんが、ウェブを探しても解答は見つけら れませんでした。是非ご教授下さい。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- notnot
- ベストアンサー率47% (4856/10272)
関連するQ&A
- 正規表現内に変数を使用する方法
match() や replace() の第1引数に文字列ではなく正規表現を使用 できますがこの正規表現内に変数を使用する場合、どうやったらよいの でしょうか。 var str = 'てすと'; alert(str.replace(/str/, 'テスト')); とすることができません。 (Perlではパターン内に変数が使用できるのですがJSでは変数が使用 できません) http://ar.aichi-u.ac.jp/blog/js-replace.html に書いてあるように第1引数に文字列を渡すと正規表現ではなくただの 文字とのマッチになってしまうようなので(確認済み)使えません。 面倒ですがリンク先にあるようにnew RegExpでRegExpオブジェクトを 作ってやる方法しかないんでしょうか。
- ベストアンサー
- JavaScript
- 正規表現について
VB6ですが・・・ '次のようなコードがあって <!-- と --> に囲まれる文字列を抜き出したのですが 'どのようなパターンマッチを書けばいいのでしょうか? 'HTMLのコメントのみを抜き出したいと思っています。 Const s = "<!--今日-->" _ & "<!--僕は--><!--正規表現を--><!--勉強します-->" Dim x As RegExp Dim v As match Set x = New RegExp x.Pattern = "パターン" x.Global = True For Each v In x.Execute(s) Debug.Print v.Value Next
- ベストアンサー
- Visual Basic
- 正規表現の一致について
正規表現のパターンマッチについて、 質問させていただきます。 現在、EUC-JPでパターンマッチングしており、 文章は、全て、半角から全角から処理に変換しております。 foreach(@list){ if($file =~ /$_/){ print"$_\n"; } } 以上のように、$fileの内容に対して、@listにある項目すべてでマッチングしようとしています。 $fileは、長い文章が格納されています。 $_ が 「ローランド_ディー.ジー.」(_は、全角空白)の場合、 print"$_\n"をみると、$file中の「:ランドクルーザー」という部分の”ランド”部分のみが出力されてきました。 文章の途中に出現する単語なので、”^”や”$”等を用いての完全一致が使えずに困っています。 どのようにしたら、$file中の$_と部分的な一致ではなく完全一致(?)になるのでしょうか?
- ベストアンサー
- Perl
- VBScript.RegExp正規表現での後方参照
VBScript.RegExpを使うと、VBA でも正規表現が使えることを最近知りました。 置換は Replaceメソッドでできるようですが、例えば Perlでの s/(.)(.)/\2\1/; のような置換(後方参照?前方参照?)はどうしたらできるでしょうか?
- 締切済み
- Visual Basic
- 正規表現について
初歩的な質問で申し訳ないのですが、ただいま正規表現を勉強中で 「ほげほげほにゃらら」の「ほにゃらら」以外にマッチさせるには どのように記述すればいいのでしょうか? ちなみに、「ほげほげ」は変動しますので、「(....)」のようなマッチはできません。 否定なので、「/[^ほにゃらら]/」でいけると思ったのですが、まったくマッチしませんでした。 お分かりになる方がいらっしゃいましたらご教授下さい。 よろしくお願い致します。
- ベストアンサー
- JavaScript
- PHP 正規表現
はじめまして^^ 現在、PHPでプログラムを作っています。 そして、文字列の置き換えをする機会があり、 正規表現をつかうことになりました!! 置き換えに使う関数は、mb_ereg_replaceです! ある条件にあった部分の文字列を置き換えしたいと思っています。 そして、いろいろとやっていきましたら、あるひとつの壁にぶつかりました。。 例えば、PHPでは、正規表現の部分を [^文字]とやると、『文』と『字』という文字列以外にマッチという意味になるらしいのですが、 『文字』という文字列以外にマッチ、というふうに、表現したい場合は、 どう表現すればよいのですか? [^(文字)]とか、その他いろいろ、 自分なりに、色々ためしたのですが、うんともすんともいいません、、 どなたか、わかる方教えて下さいm(_ _)m
- ベストアンサー
- PHP
- vbaの正規表現で、マッチした一部分を抽出したい
accessの正規表現で、マッチした部分の一部を取り出したいと思っています。 秀丸で言えば、 ------------------------ 文字列 あいうえお ↓↓↓ 正規表現 あ(.*)お 置き換え文字 \1 ↓↓↓ 抽出 いうえ ------------------------ って感じの「¥1」みたいなのがほしいと考えています。 現在、下記のような感じで、対象文字を抽出しています。 ここから、また正規表現でほしい部分を抽出しなければいけないのでしょうか? 【上の例で言えば、「あいうえお」を抽出する関数】 ------------------------ Function 抜き出し(ByVal 指定文字列 As String) As String Dim 正規表現, 一致集団, 一致要素 Set 正規表現 = CreateObject("VBScript.RegExp") 正規表現.Pattern = "購入日時[0-9]{4}年[0-9]{1,2}月[0-9]{1,2}日 [0-9]{1,2}時[0-9]{1,2}分" 正規表現.MultiLine = True Set 一致集団 = 正規表現.Execute(指定文字列) For Each 一致要素 In 一致集団 抜き出し = 一致要素.Value Exit For Next End Function ------------------------ これだと、 購入日時2012年1月25日 17時53分 がマッチします。 でもほしいのは、 2012年1月25日 17時53分 の部分だけ。 何かいい方法は無いでしょうか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
う~むないですか。[^]で確かにできそうですが、場合によってはかなり複雑な表現になりますね。 これでやってみます。ありがとうございました!