s/^0+([1-9]|0$)/\1/;
>>885 それだと、010系がうまくいかないような。
マジで?
s/^0+([0-9])/\1/;
use strict;
$_ = "010";
s/^0+([1-9]|0$)/\1/;
print; # 10
$_ = "010";
s/^0+([0-9])/\1/;
print; # 10
!?( ゚Д゚)
>>890 あれ?
Rubyでやっているのですが、こうなりました。。。
a = "010";
/^0+([1-9]|0$)/ =~ a;
puts $1; # 1
a = "010";
/^0+([0-9])/ =~ a;
puts $1; # 1
それは一番目のキャプチャを表示してるだけじゃん。置換しろよ。
>>893 了解しました。
置換するメソッドを探してみます。
(´・ω・`)
CHIKANCHIKAN - 痴漢メソッド
ある一定の値(15から25)を持ち、かつメス属性を持った実体を過激に痴漢するメソッドです!!!!
つまんねえこと書くなオッサン
(?:0+?)([1-9][0-9]*) → \1
じゃだめなん?
ミスった
^(?:0+)([1-9]+[0-9]*|0)
これでどうだろう
つかこれでいいのか
^0+([1-9]+[0-9]*|0)
>>872=874?
わざわざ試作までして頂いたようで申し訳ありません。
>>869-875 質問の趣旨は、要件にあった物ががあれば、ちょっと教えてもらえないか、
という事であって、プログラムを書いて欲しいとまでは思ってませんでした。
自分はスキルが低いので何もお返しができませんし(汗)
今後は、似たような悩みがありそうなサーバ系のスレででも、別のアプローチで
質問してみます。
レスして頂いた方々、ありがとうございました。
すみません自分のレス番つけてなかったです。
>>900 gsubという置換メソッドを見つけましたが、その方法だと
>>892のやり方でも
いけました。
どもです。
AAAAAA/BCD→AAAAAA
BGD/HJL→BGD
/より後ろの文字列を置換で削除(/も含む)したいのですがどういう表記にすればいいんでしょうか?
>>904 (.*?)/.* を \1 に置換
処理系によっては / は \/ にエスケープ。
>>905 即レスありがとうございます、置換できました
/.*を空文字置換ではいかんの?
普通はそうなる罠
>>901 作った。
自分のブログに上げたから、ブログ検索で見つけてくれ。
質問です
「切れる」「切れた」「切れす」「切れてん」「切れ、」にヒットして「切れ〜レス」にヒットしないような正規表現を作ろうと思い、
(?=.*切れ)((?=.*る)|(?=.*た)|(?=.*す)|(?=.*てん)|(?=.*、))^(?!.*レス).*
というのを作ったのですが、これだと「切れ〜〜、」というものまでヒットしてしまって困っています。
「切れ〜〜、」にヒットせずに、「切れ、」にヒットするようにはどうすれば良いのでしょうか?
よろしくお願いします。
lex的にやればできる。awkでもできそうだが。
"切れ([るたす、]|てん)" { printf("hit"); }
"切れ.*レス" { /* ignore */ }
. { /* ignore */ }
912 :
デフォルトの名無しさん:2007/07/15(日) 01:11:22
なんでlex?
普通に
切れ(る|た|す|(てん)|、)
でいいだろ。
切れ([るたす、]|(てん))
のほうがいいか。
>>912 それだと 「切れるレス」 が問題になる
「切れ〜レス」だけは駄目ってこと?
「切れるレ」とかは?
自分のWindowsアプリに正規表現を組み込もうと思っていますが、どの既存のエンジンが
みなさんのお勧めでしょうか??安定して、日本語を正しく処理できるエンジンがいいです。
よく見るのはBREGEXP.DLL
最近は鬼車じゃないの。
あとはライセンスじゃね?
GPLな正規表現ライブラリ薦められて何も知らずに採用しちゃって・・・
なんてことがあっても誰も責任はとれんよ。
>>916 文字コードは?Unicode, Shift_JIS?
Boostの文字列操作ライブラリはshift-jisと相性良くないからな。
自分でトークンイテレータを作りこむ人にはアリな選択
文字コードはUnicodeでお願いします。Windowsの内部形式と同じUTF-16LEで。
BREGEXPか鬼車ですか。わかりました。調べてみます。
Unicodeなら、Bregexp.dllは使えないな。鬼車かBoostかな?
鬼車は置換処理は自分で書かないといけないので注意。
あとは、Bregexp互換で中身は鬼車のbregonig.dllってものもあるけど、
ベータ版のUnicode対応版が出てる。置換もあるけど、まー、ベータ版だから様子見かな。
>>915 「切れるレス」にヒットしなければいいです。
専ブラJaneのあぼーんで使いたいので、perl互換で作りたいのです。
>>910の正規表現だと、「切れ、」と「切れ〜〜、」のどちらにもヒットしていしまい、この2つを区別したいのです。
例えば「切れないし、」は残したい場合でも、「切れ」と「、」が含まれるのでヒットしてしまうのです。
どうすれば解決できるのでしょうか?よろしくお願いします。
923 :
922:2007/07/15(日) 06:48:52
書き忘れました。
情報小出しにしてすいませんでした。
しね
UTF-8 なら PCRE でも良くね?
単純な文字列マッチの性能は鬼車>PCRE
文字列固定の部分をBoyer-Moore法使って高速化してるからな。
Xpressiveもそうだっけな
>>922 手元に環境無いから試せないが
/切れ([るたす、]|(てん))(?!レス)/
では、どうか?
>>927 だめでした。
「切れ、」と「切れ〜〜、」は解決できているのですが、「切れるレス」にもヒットしてしまいました。
正規表現はxxを含まないというのを書くのに向いてないのに
なぜ無謀にもやろうとする奴が後をたたないのだろうか...
NOT ○○を含む
で実現すればいいのにねぇ
そうは言っても、ソフトがそれに対応していないとどうにもならんわけで。
(Janeはどうか知らんが)
>>928 そもそも Jane の正規表現って、Perl 互換なの?
あと、日本語をちゃんとサポートしてるのか?
Jane で使える正規表現を説明しているページ Plz
素朴な疑問だけど、正規表現に否定がないのはなぜ?
!(正規表現) で(正規表現)にまっちしない文字列、みたいのが
あってもよさそうなものじゃないかと思うのですが
>>932 JaneView.txtに
▼01101-040210RC1
▽正規検索ユニットを変更
・これまで使っていたRegExpRから、Windows/IE付属のRegExpオブジェクトに変更
・文法はPerl5互換(これまでと同じ)
・パフォーマンスは純粋な検索部分の速度で約2〜3倍に向上
・以前のユニットに戻すには、「設定」「設定」「その他」の「正規検索にWSHを使う」
をオフにして再起動
・環境の問題でWSHが使えない場合は、初回起動時に警告ダイアログが出て自動でオフに
設定されます(その場合、チェックボックスはグレーアウトされる)
※WSHで問題の報告がなければ、いずれRegExpRを取り除く予定です。
とありました。
日本語は使えてます。
>>933 まいっちんぐしない文字列を痴漢するときはどうするんだい?
というか、1文字の入力から状態遷移を繰り返してるから
入力から遷移先が決まらないものはダメなんじゃねえの
[^hoge]
正規言語の補集合も正規言語だから、!(正規表現)みたいのが
なくても書けるので不要ということだろうな。でも与えられた
正規表現が受理する言語の補集合を受理する正規表現を書くのは
大変なので、そういうシンタックスシュガーがあれば便利かも?
grep -v 'regexp'
>>940 自分の無知を偉そうに自慢されても私たちに出来る事は何も有りません
>>934 確かに
> ・文法はPerl5互換(これまでと同じ)
って書いてあるけど
> Windows/IE付属のRegExpオブジェクトに変更
> ・環境の問題でWSHが使えない場合は
とも書いてあるので、細かいところまで Perl 互換かはちょっと怪しいな。
とりあえず
http://tehen.hp.infoseek.co.jp/abone/abone.html によると、
/切れ([るたす、]|(てん))[^レ][^ス]/
あたりは動きそう。
(行末とかが "切れる" とかなってるとちょっと不味いかも...。)
>>941 小難しい単語並べりゃいいってもんじゃないんだよ。
>正規言語の補集合も正規言語だから、!(正規表現)みたいのが
>なくても書けるので不要ということだろうな。
書いてみろ。
この作業が酷く大変なら、そういうシンタクスシュガーが無い理由もわかるだろ。
なんちゅう詭弁
>>943 特定文字列が含まれてるかどうか調べるなら
if( $pero =~ /kari/ ){print "バーロー\n";}
含まれていないことを調べるならその補集合で
if( !($pero =~ /kari/) ){print "ローバー\n";}
ってことを言っただけでしょ?
これだけじゃ超えられない表現もいっぱあるけどさ
クイックハックでパターンの先頭に1個「!」があれば否定にするようにしたことあったな。
実現方法は後察しの通り。
if( $pero !~ /kari/ ){print "バーロー\n";}
団子って何歳?
たしか40代だったな
永遠の12歳だお
36進法で。
縦読み厨うざい
print "バーロー\n" unless( $pero =~ /kari/ );
ここに書き込むのは気が引けるほどの、ど初心者なのですが質問させてください。
FirefoxのSearchBox Syncというアドオンを使っています。
これは検索した文字列を検索ボックスに自動的に挿入させるアドオンです。
これで適用させるサイトを増やしたくて、正規表現を見始めました。
そこで本題なのですが、
^
http://www\.amazon\.com?\.?(\w+)?/.*keywords=([^&]+)
と
amazon.*keywords=([^&]+)
では、どちらも検索語句を抽出できますが、どちらの記述の方がスマートな記述なのでしょうか?
なお、最後尾のグループに入る文字列が検索ボックスに挿入されます。
どちらがスマートかというより、上のほうが厳密で、下のほうは緩やか。
例えば下のだとamazon.co.jpのほうもマッチします。
>>956 上のも co.jp にマッチするというかマッチさせたいという話じゃないのかな?
できるよ
分かったら後は自力で頑張れ
>>959 レスありがとな!
今「サルでもわかる正規表現」ってサイト読んでるぜ!
961 :
デフォルトの名無しさん:2007/07/26(木) 10:52:33
&または行末 というつもりで[&$]と書いてもうまくいかない
行末は文字じゃないから
963 :
デフォルトの名無しさん:2007/07/26(木) 11:04:53
>>962 &または行末 という表現はどうかけばいい?
(&|$)
>>950 次スレはテンプレに「質問する香具師は実装言語・処理系を言え」を加えて立てといて。
よろしく。
()が必要なのか・・・無しで書きたいな・・・
なんで?
いや、なんでもない
?=を使えばいいのを忘れてた
そんなに正規表現による検索って需要あるのか??
だとしたら、俺のソフトにも追加してやるか。
いや、お前のには要らない。
そもそもお前のソフトが要らない
お前もいらない
俺もいらない
俺にはお前が必要
いらないのは俺だけ
おらだけいらね
とりなしてくだせ
文章から特定の単語以外をすべて空文字に置換することはできますか?
979 :
977:2007/07/28(土) 15:40:46
すいません。
サクラエディターもしくはEclipseのテキストエディターでできれば、と思います。
そのへん言わないやつらは全員perl準拠だと思えばいいよ
違う環境だったら死ねと言えば済むこと。
ヒドスw
まあ、結論だけ言うと出来ないよ。
>>977
サクラエディタマクロでWindowsSriptで否定の先読みが使ってやれ。
空文字ならnul文字だな。\c@だ。