正規表現
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < ああああああああああああああああああああああああああああああああああああああああああああああああああ
/| /\ \________
0006デフォルトの名無しさん
NGNG定番のヤツない?
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG* 直前のパターンの0回以上の繰り返し。
+ 直前のパターンの1回以上の繰り返し。
*と+について、「直前のパターン」が無かった場合、どうなるのでしょう?
例えば*だけの場合。
*
これはエラーとして弾くのが妥当ですか?
0011デフォルトの名無しさん
NGNG規格があるじゃん。ANSIだっけか。
ところが正規表現って、オレはNFA、あいつはDFAってレベルで、メタ
文字はなんでも\w(別に\aでも言い訳じゃん)なのは何故でしょう。
0012デフォルトの名無しさん
NGNG>>9 の本文でマッチしました
0013デフォルトの名無しさん
NGNGpythonとかrubyの正規表現ってどの程度でしょう?
0014謎
NGNG『性器表現の達人』
でも買って読め
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017あれら
NGNG話は逆で、うちらはたまたまそこにある言語とゆものを利用したり悪用したりして、偶然なんかの役に立ったりもするコードができたりできなかったりする。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG*は0回以上の繰り返し、ゆえに0でもオケ。
+は一回以上の繰り返し、ゆえに0はペケ。
だったような
0020デフォルトの名無しさん
NGNGじゃなくて、RE自体が不正だろ、/*/なんてのは。
0021デフォルトの名無しさん
NGNGそっか、直前のパターンのない*は不正って事か。
勘違いしてた、さんくす
0022デフォルトの名無しさん
NGNG*
+
単体ではペケってことでいいですか?
0023デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG直前のパターンがないときはメタキャラクタと見なさないという実
装もある。Emacsだとか。
0026デフォルトの名無しさん
NGNGそれはなんか誤解を招きそうですね。
でも、普通の式解析で言えば、2項演算子の/や*とかが、
いきなり現れた様な物だから、それは演算子ではない、
では何か?→ただの文字、って解釈もアリなのかな。
0027デフォルトの名無しさん
NGNGの方がほんとは親切だと思う。
メタキャラクタの無効化の手段は他に用意されてるわけだし。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNGageを空文字列に置き換えたら上がらないのでは……?
0030デフォルトの名無しさん
NGNG空白だとあがると思われ
003130
NGNG0032デフォルトの名無しさん
NGNGキャラクタクラスなんかひどいもんだよ
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG既にこのスレの中だけでも二冊タイトルが出ているが?
0036デフォルトの名無しさん
NGNGs/a//
0037デフォルトの名無しさん
NGNGs/s//
0038名無しさん
NGNG0039shige
NGNG0040デフォルトの名無しさん
NGNG'\n'で追加はできるんですけど削除はできないものなのでしょうか?
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNGs/g/n/
0043デフォルトの名無しさん
NGNGワラタ。最初 sane って何よ? とか思ったけど(w
>>40
sed でできない気がする...
tr -d '\n' とかならできるけど、正規表現でもなんでもないな。
ということで sage
0044shine
NGNG0045デフォルトの名無しさん
NGNGs/\n//gじゃだめかい?
crlfなら
s/\r\n//g
0046デフォルトの名無しさん
NGNG位取り付き漢数字変換(12345←→壱拾弐万参千四百五拾六)する
スクリプトを作ったことがある。
今となっては懐かしい思い出。
0047デフォルトの名無しさん
NGNGPerlだと簡単にできるような気がします。
Perlはsed、awkの機能も含んでるからいいと思います。
0048デフォルトの名無しさん
NGNG005040
NGNGえーと"sed"で、と書いたのはvi系のエディタのコロンコマンドで連結を
行いたかったからです。Perlやawkとか答えてくれた方すいません。
Jコマンド+map機能を使ってもいいのですが・・・。
パターンを含む行の改行を取り除くみたいなことが簡単に行いたいです。
ちなみに使っているエディタはviviです。vimとかなら可能なのでしょうか?
0051デフォルトの名無しさん
NGNG0052性器表現
NGNGメス (())
0053デフォルトの名無しさん
NGNG何かと思ったら、ちんぽか。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNG0056おちんちん
NGNG0057デフォルトの名無しさん
NGNG0058デフォルトの名無しさん
NGNG0059デフォルトの名無しさん
NGNGお勧め教えてください。
0060デフォルトの名無しさん
NGNG0061ミルク性器
NGNG/⌒ヽ
│ ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
│ ゚ Θ゚)<ちょっと、おめこをナメてくらあ。
〕 〔 \_______
/ ヽ
/ ∵ \
/ / ∵∵ト、\
│ |ヽ ∵∵/ \ \
│ | │ ∵│ (_)
(_)│ ∵│
\ \/
/ \ \
/ / \ \
/ / \ \
(  ̄) (  ̄)
0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNG(.*([yY][aA][mM][aA][dD][aA]).*([tT][aA][rR][oO][uU]).*)|(.*([tT][aA][rR][oO][uU]).*([yY][aA][mM][aA][dD][aA]).*)
とするしかないのでしょうか。
0064デフォルトの名無しさん
NGNG/(yamada.*tarou|tarou.*yamada)/i
ではダメ?
0065デフォルトの名無しさん
NGNGどういう仕組みになってるんだろうか…?
0066デフォルトの名無しさん
NGNG$b="tarou";
/($a.*$b|$b.*$a)/i
でもいいのかな?演算子の優先順位が良く分からんが…
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGttp://www.t.onlab.ntt.co.jp/sumomo/
ttp://chasen.aist-nara.ac.jp/index.html.ja
単純に文字列にマッチするかどうか調べる正規表現より
ずっと難しいと思う。
0069デフォルトの名無しさん
NGNGこういうタグの解析をしたいのだけど、”更新内容”には
2バイト文字が入る事を前提にしたいのね。
2バイト目の " と、半角文字の " はどうやってくべつすればいいのかしら?
/(<history(\s+)date=[\"](\d+)[\/](\d+)[\/](\d+)[\"][\s]+memo=[\"](.*)[\"]>)/i;
$year =$1;
$month=$2;
$day=$3;
$memo=$4;
でいけるかな。
0070デフォルトの名無しさん
NGNG幸いにして"はEUCやSJISとは重ならない。
ISO-2022-JPが対象ならいっぺん変換した方がいい。
0071デフォルトの名無しさん
NGNGとう文字列があります
1 ハイフンでつながれた数字を取り出す
<パターン>[0-9]*-[0-9]*"
<結果>1-3 7-8 11111-116166
2 両端が,の数字を取り出す
<パターン>?
<結果>6 9 10 111222
1のほうは多分書いたパターンでいいと思うのですが、
2がなかなかうまくできないです。
教えていただけますか?
0072デフォルトの名無しさん
NGNG,[0-9]*?,
じゃだめ?最小マッチ指定すればよいと思うんだけど
最小マッチの記号忘れた。
007371
NGNG1,2-3,4,5,6
のようなパターンもあります。
このばあいは
1 4 5 6
とマッチさせたいです
0074VB厨房
NGNG0075デフォルトの名無しさん
NGNGそれも72の方法でいける気がする。
0076デフォルトの名無しさん
NGNG一回マッチするとその次の検索は後ろの,のあとから始まるので、そ
の直後の数字にマッチできない。look-aheadを使えば
/,[0-9]+(?=,)/
あるいはlook-behindをつかって
/(?<=,)[0-9]+,/
前後の,を除外するにはlook-ahead/look-behind両方が必要。
/(?<=,)[0-9]+(?=,)/
0077デフォルトの名無しさん
NGNG(?<=,)[0-9]*?(?=,)
007871
NGNGorg.apache.oro.text.perl.Perl5Util
をJavaでつかってます
(?<=,)
の部分が例外になってしまいます。
やっぱり手で書くしかないのかな
0080デフォルトの名無しさん
NGNGじゃなくて?
0081名無しさん
NGNG>ずっと難しいと思う。
正確さを諦めればずっと簡単。
かんなの辞書データで最長一致を求めていけば意外と
辞書の構成の妙でうまく単語分解するのでびっくり。
もちろん、本格的なシステムにはなんないですけど、
キーワード検索程度には使える。
0082デフォルトの名無しさん
NGNGPerl5.005 からの機能
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNGオライリー「詳説 正規表現」を飼え
「正規表現の達人」は浅すぎる。
0085デフォルトの名無しさん
NGNGどうやればいいのかな?
0086デフォルトのななしさん
NGNGegrepやsedなら-vオプション、
Perlなら{ hogehoge if $_ !~/pattern/; }
だろうな。
0087デフォルトの名無しさん
NGNGでウチのエディタ(JRE32.dll使用)は何故かマッチした。アレ?
008887
NGNG0089デフォルトの名無しさん
NGNG/^(?!.*hoge.*).*$/
009190=89
NGNG0092デフォルトの名無しさん
NGNGためにヒットさせる正規表現として「置換前」に入れるもの
\(\f[^0-9)\n]*\f\)
をどこかで読んで使ってるんですが、分析ができないので、応用が利きません。
これを日本語にしてもらえないでしょうか?
とくに0-9の後の ")" が分からないんです。
0093デフォルトの名無しさん
NGNG何の正規表現?
\([^0-9]*\)
だと
(aaa)aaa) という文字が来たとき、1つ目の ) を含めて全体を置換してしまう(*は欲張り)。
[^0-9]* は「0から9以外のいずれか1文字が0個以上」という意味なので ) という文字も含まれてしまうため。
\([^0-9)]*\)
だったら 「0から9と ) 以外のいずれか1文字が0個以上」という意味になるので、
) という文字が来たときにマッチングは止まり、 (aaa) の部分のみが正しく置換される。
つまり、92さんの分からないという ) も 0-9 と全く同じように文字を指定しているに過ぎない。
一般に最小マッチが出来ない環境で * や + といった文字の欲張りな挙動を抑えるために
.*終了文字
.+終了文字
を
[^終了文字]*終了文字
[^終了文字]+終了文字
と書く。
(正確には
[^終了文字\n]*終了文字
[^終了文字\n]+終了文字
)
こんなんでどう?
0094名無しさん
NGNG穴、赤貝、赤烏帽子、赤団子、赤門、あけび、あぐら開き、上がりぼぼ、
あさぼぼ、葦原、天岩戸、穴熊、あわび、あわびくぼ、あらばち、蟻の門
渡り、青田八反、あたたかまんじゅう、空家、合わせ貝、泉、池、猪、磯
巾着、淫門、厩、うなぎ開き、大口、おかんこ、奥の院、御香箱、お黒も
の、おとし穴、斧きず、お鉢、大皿、お箱、落ちくぼ、おまんじゅう、お
まん、おまんこ、おめこ、おちゃっぴい、かくしどころ、かくれどころ、
かんこ、観音、開帳、歓器、柏餅、かわらけ、皮財布、貝、蟹、きず、巾
着、玉門、客間、局所、くぼ、くみど、くぼみ、くど、桑名、くるみ、栗、
毛雪駄、毛巾着、毛まんじゅう、毛靴、毛桃、鯉口、御秘蔵、木ノ実、故
郷、香開、細工場、さかずき、ささげ、三寸、三角、逆さ富士、逆さ舟、
鞘、蜆、四十八ひだ、しなたりくぼ、しも、下の口、品物、朱門、女根、
すずり、すだれ、巣、すり鉢、せり箱、そそ、空、そら豆、空割、たれ、
たま、谷間、大衆風呂、足袋、たらい、丹穴、茶碗、茶釜、茶壷、筑紫つ
び、ちゃんこ、ちゃんべ、ちょこ、ちんつび、つびたり、つぼみ、つぼ、
つか袋、露穴、鉄開大明神、兜巾、戸口、洞庭の月、洞門、道具、常闇、
とさか、戸立、薙刀、情所、内陣、なま貝、奈落、肉まんじゅう、如来、
沼、のこ、乗合舟、畑、蛤、花、はじけ豆、はりま鍋、火消壷、ひなさき、
びり、菱餅、秘境、人穴、船霊、風呂、舟、ふいご、篩、へき、べにうす
ざん、へへ、へっぺ、べっちょ、へその下、べこ、ほと、ぼぼ、ぼぼじょ、
ほがみ、報謝開、ぼぼっこ、牡丹餅、ぼっしょー、ぽっぽ、ぽっぽじょ
0095デフォルトの名無しさん
NGNG多分秀丸の正規表現だと思われ。
マッチした部分を置換後文字列に反映させる時に\fって使ったような。
009692
NGNG秀丸マクロです。
ご説明、よくわかりました。特に前半部分。
あと、後半部分の、「終了文字」あたりがまだ理解不十分です。
良い例があったらと探しているんですが、思いつかないので、
よかったらお聞かせください。
0097デフォルトの名無しさん
NGNGこのスレは終了します。
0098終了中申し訳ありませんが・・・
NGNG<td><a href="./kabe/shingomama.gif"><img src="new.gif">慎吾ママ</a>[120*120]<br>
<a href="./kabegami/you.gif">IS IT YOU?</a><br>
こういった文字列の<a href=■■■■.gif>って文字列だけを、
<a href=■■■■.htm>に変える方法がわかりません(^^;
どなたか解いていただけませんか?
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG正規文法・正規言語・正規表現・有限オートマトンあたりで検索。
0101デフォルトの名無しさん
NGNG「なぜそれを正規表現と呼ぶか」は、たいていだれも、
なかなか技術の本では教えてくれないな。
たぶん言語学の本にのってる?
0102デフォルトの名無しさん
NGNGundef $/;
while(<>){
s/(<.*?>)/gif2html($1)/esg;
print ;
}
sub gif2html{
my $string = shift;
$string =~ s/([\w\d]+\.)gif/$1html/g;
return $string;
}
0103デフォルトの名無しさん
NGNG「正規文法と同等の表現力を持つから」だと思うが、そもそも何で
正規文法と呼ぶのかは謎ですね。
文脈自由文法あたりは、なんとなく意味が通るけど。
0104デフォルトの名無しさん
NGNGs/(<a href="\w+)\.gif(">)/\1.html\2/g;
じゃだめなの?
0105104
NGNGs/(<a href="[\w\/]+)\.gif(">)/\1.htm\2/g;
0106デフォルトの名無しさん
NGNGhttp://ei5nazha.yz.yamagata-u.ac.jp/~aito/lang-model/node18.html
文法とクラス
「文法とクラス」っていうよりは「文法のクラス」だろって
つっこみたいが。。あるいは「文法とその諸クラス」
0107デフォルトの名無しさん
NGNG文字通り、文法の規則性が高いからじゃないの。
入力文字列にどういう規則があるか、と考えたときに
有限個のキャラクタと数少ない規則で全てが表現
できます、というわけだから。微分もできるし。
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGあくまで「数学的には」そうかもね。
regularの訳語 正規/正則 は両方ある。
regularって原語でどういう意味に使われてるんだろうな。
0110デフォルトの名無しさん
NGNG−正規表現の起源−
http://www.microsoft.com/japan/developer/scripting/jscript/doc/reconearlybeginnings.htm
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNGじゃ、正則じゃなくて正規って呼ばれるのは何でだろうね。
数学のほうのregularの訳語で正規って使うのかな?
0113デフォルトの名無しさん
NGNGとか
0114デフォルトの名無しさん
NGNGなんか、一気にレベルが下がったな。
0115デフォルトの名無しさん
NGNG「詳説 正規表現」と同レベルだな
0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG理論的に無理です。
0118デフォルトの名無しさん
NGNG$NAME = [_A-Za-z][_A-Za-z0-9]+
$TYPE = (int|double|float|char)
$VAR = TYPE[ ]*(NAME|NAME = $VAL)*;
$FUNC = $TYPE[ ]+NAME[ ]+\(|TYPE NAME(;TYPE NAME)\)
0119デフォルトの名無しさん
NGNG例: a regular fellow
いいやつ、好漢
0120デフォルトの名無しさん
NGNG「Cの構文規則を」とは言ってないみたいだけど?
0121デフォルトの名無しさん
NGNG0122デフォルトの名無しさん
NGNGでvalue以外をnullに置き換えたいんです
value=\"*\"
以外ってどう表現したらいいですか?
0123デフォルトの名無しさん
NGNG言語/環境は?
Perl ならたとえば
s/^value="(?!value\b)[^"]*"$/value="null"/;
…なんてのがうまく動いているようにみえる。
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGDFAと正規表現が同等なことを利用して、
DFAをつくろうにも状態数が無限になってしまうといえればいいのか?
0126デフォルトの名無しさん
NGNGなんとなく分かった気がする。
0127124
NGNG今も漠然としか分かってないんだけどね、まぁ要するにツリー状に
表せる状態遷移の系図ですか?
Perlの正規表現は\1とかで後方参照できるから、厳密には
正規表現からDFAへの対応は作れないような気がするんだけど、
どんなもんでしょうね。
0128デフォルトの名無しさん
NGNG後方参照は言語の機能であって正規表現とは関係ない。
0129デフォルトの名無しさん
NGNGよって DFAにも落とせないと。
0130128
NGNGhttp://www.linux.or.jp/JM/html/LDP_man-pages/man7/regex.7.html
0131デフォルトの名無しさん
NGNG\1がまっとうなDFAではできないことは明白だな。
サポートしてるやつはだいたい、NFAで工夫してるようだね。
■ このスレッドは過去ログ倉庫に格納されています