正規表現道場
..
175:nobodyさん
07/09/16 02:19:07
^^
176:nobodyさん
07/09/16 03:52:16 vOvwrq99
>>173
前後にデリミタ (「/」) が付いているという事はPerl互換の正規表現関数を使うのでありましょうが、
そうであれば 「.」 はs修飾子がない限り改行にマッチせず、 よって
/^(.+?).txt/
は
hoge
hage
123.txt
にマッチせず、 したがって
hoge
hage
123
がキャプチャされることはないはずです。
177:nobodyさん
07/09/16 12:32:40
>>173
まあとにかく「マッチしてしまう」とかいうそのコードを晒してみ。
178:nobodyさん
07/09/16 13:59:22 G/qusHMm
$bairitsu = 0.5;という風に$bairitsuに倍率を入れておいて
height:244pt を height:122pt…
height:244pt を height="150"に
といった具合にheight:●●ptやheight="●●"の数値部分を
$bairitsu倍して置換するにはどのようにすればいいですかね?
やろうとしてることは、エクセルで作ってHTMLで保存したものを、
A4サイズの用紙に合うようにHTMLの中にあるサイズ指定を変更したいです。
使用言語はPerlです。よろしくお願いします。
179:173
07/09/16 15:18:36 6P4HpCmY
>>175
それは……ヒント? それともAA?
>>176
失礼。パターンを行頭にしたり行末にしたり改行文字にしたりしてるうちにこんがらかってしまったみたい。
正確には
"/^(.+?).txt/"
でマッチしました。
>>177
コード的にはこんな感じ。
$string = "
hoge
hage
123.txt
";
preg_match("/^(.+?).txt/", $string, $matches);
preg_match("/txt.(.*?)\r/", strrev($matches[0]), $matches);
echo strrev($matches[1]);
// 結果 123
PHPも正規表現も初心者なので変な書き方してるかもだけど……。
180:173
07/09/16 15:27:38
あれ?正確にはも何も最初に書いたのであってるなあ。
なんで「マッチしてしまう」のだろう。
181:nobodyさん
07/09/16 21:38:24 YMkvDZNb
>>179
ああ、 改行コードをCRにしているのですね。
私は
> 「.」 はs修飾子がない限り改行にマッチせず
と申しましたが、 正確には 「LFにマッチせず」 でありまして、 CRにはマッチします。
普通はスクリプトの内部では文字列の改行コードをLFにするものですが、
何か理由があってCRにしているのですか。
182:nobodyさん
07/09/16 21:48:57 YMkvDZNb
改行コードがLFなら、 m修飾子を使うことにより 「^」 が行頭にマッチするようになるのです。
183:173
07/09/17 00:37:12 /5o1hJUZ
>>181
> と申しましたが、 正確には 「LFにマッチせず」 でありまして、 CRにはマッチします。
あー、そういう事なのか……。
勉強になります。
> 何か理由があってCRにしているのですか。
実はいつも決まった形式で入稿されるテキスト原稿を決まった形式のHTMLにするだけの仕事が定期で入ってくるんです。
で、毎回毎回コピペにつぐコピペで対応し続けるのもバカくさいので極力自動化しようと思い、PHPでシコシコ書いている次第。
そのプログラムに食わせるお客さんからの入稿原稿を元に作ってたのでCRになってました。
試しに改行コードをLFにしてm修飾子というのを試したらうまくいきました。
なるほどもらった原稿をLFに変換してから使えばいいわけだな。
ありがとーございました!
184:nobodyさん
07/09/17 01:05:58 T68tRmUw
あと1つ指摘しますと、 「.txt」 は 「\.txt」 にすべきですね。
185:173
07/09/17 15:37:44 /5o1hJUZ
> あと1つ指摘しますと、 「.txt」 は 「\.txt」 にすべきですね。
おーなるほど。ありがとうございます。
186:nobodyさん
07/09/18 14:10:13 hpuf++fz
Perlを使って、アフィリエイトのコードやJavaScriptなどを含むコメントタグがなぜか削除できません。
例)
<!--
コード
・
・
-->
HTMLタグは s/<.*?>//sg; とすれば削除できますが
なぜかコメントタグだけが残ってしまいます。
コメントタグの開始「<」と終了「>」以外の全ての文字列・記号・改行コードを削除したうえで
s/<>//g; としてみましたが削除することができません。
s/<//g;
s/>//g;
とするとなぜか削除できます。
うまく削除できる方法をご存知の方がいたら教えて下さい。
187:nobodyさん
07/09/18 16:31:55
前処理としてまず s/<!--.*?-->//gs やってみたら?
コメントタグのネストはないだろうし(JavaScriptとかで書き出してたら別だけど・・)
188:nobodyさん
07/09/19 07:54:55
>>187
レスどうもありがとう。
s/<!--.*?-->//gsでもなぜかうまくいかないので
コメント行が現れたらif文でスルーするようにしました。
189:nobodyさん
07/09/19 21:54:47
PHPで正規表現勉強したいんですが、オライリーのふくろう本を読めるでしょうか?
もちろん本人の技量にもよると思いますが、Perlをまったく知らない人間がという解釈でお願いします。
逆に文字列処理をしたいなら、Perlを一からやっとけみたいなのもありです。
190:nobodyさん
07/09/20 00:20:26
>>189
preg_.*系関数ならPerl互換なのでふくろう本の記述が使えると思う。
というかね、ふくろう本のキモは処理系にほとんど依存しない3章と4章で、
それ以外はおまけだ。熟読すべし。
191:nobodyさん
07/09/20 01:57:42
ありがとう。時期を見計らって購入するよ。第三版出るみたいだし
192:nobodyさん
07/09/20 02:42:28
>>191
え、日本語訳出るの?
193:nobodyさん
07/09/20 13:36:17 KlmMrt1+
<TD width="52" height="25" bordercolor="#CCCCCC" valign="middle">
<div align="center">F8FA</div>
</TD>
これの
「F8FA」の部分をpreg_match_all取得したいのですが、
'/<TD .*><div .*>(.*)</div><\/TD>/Ums'
としたのですが、何も取得されません。
どのように表記すれば良いのでしょうか?
194:nobodyさん
07/09/20 13:42:18
/<TD.*?><div.*?>(.*)?</div><\/TD>/
こんな感じ?
195:nobodyさん
07/09/20 13:44:34
試してないけどひとまずパッと見でおかしそうなのを直すとこう?
'/<TD .*>\s*<div .*>(.*)<\/div>\s*<\/TD>/Ums'
196:nobodyさん
07/09/20 17:00:54 SqIRO2nC
'#<TD(?:\s[^>]*)?>\s*<div(?:\s[^>]*)?>(.*)</div>\s*</TD>#ms'
197:nobodyさん
07/09/20 19:58:25
>>193
正規表現は二作出てるから次も一年たった今頃出るかなという予想込みだけど出なかったら出ないのもタイミングかなと。
198:nobodyさん
07/09/20 22:27:42
>>197
日本語でおk
199:nobodyさん
07/09/20 23:09:32
>>198
おk!=日本語
200:nobodyさん
07/09/21 00:43:48
>>191
ソースは?
201:nobodyさん
07/10/02 19:12:55 DsttFroa
PHPの正規表現でユーザーエージェント(IE限定)から
ブラウザバージョンとOSのバージョンを取得するため
以下を作成しました
preg_match('/Mozilla\/.*(MSIE [0-9\.]+);.*(Win[^;\)]+|Mac[^;\)]+).*/i', $lua, $match)
ほぼ間違いなく取得できるのですが唯一以下形式のエージェントのみ
失敗します
Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; Yahoo! JAPAN Version Windows 95/NT CD-ROM Edition 1.0.; DigExt)
古いバージョンなので切り捨てても良いとは思うのですが悔しいので
どうすれば正しく取得できるか教えていただけないでしょうか?
上記の正規表現では
MSIE 5.0
Windows 95/NT CD-ROM Edition 1.0.
ほしいのは以下
MSIE 5.0
Windows 98
202:nobodyさん
07/10/02 19:26:37
m#(MSIE\D*[\d\.]+).*?((?:Win|Mac)\D+\d+)#
こんな風でどう?
203:nobodyさん
07/10/02 19:34:02 DsttFroa
>>202
ありがとうございます
おかげ様でできました
比較検証して勉強させてもらいます
204:nobodyさん
07/10/05 23:08:47 ivRnBDKk
質問です
$text = "第41条 [国会]は、[国権]の最高機関であつて、国の唯一の[立法機関]である。";
というテキストで[]でくくられた部分を検索エンジンに飛ばすためのリンクに書き換えるための置換処理を行いたいと考えています。
そこで下のように組んでみたところ
$text =~ s/\[(.*)\]/(<a href=\/http:\/\/foo.bar?query=\"$1\">$1<\/a>)/;
置換の対象となるカッコは行の先頭の[から行の最後の]までが対象となってしまい。上手く機能しません。
この置換処理はどうかけば、いいのでしょうか?
205:nobodyさん
07/10/06 00:06:57
>>204
* や + は、そのままだと最長の文字列でマッチしてしまうので、
最短マッチにするために .*? みたいにすると良い。
あと、繰り返し処理させるために、 g オプション (/.../g みたいな) を付けるよろし。
206:nobodyさん
07/10/06 00:07:46
$text=~ s#\[(.*?)\]#my$r=$1;(my$s=$1)=~s/([^\w ])/'%'.unpack('H2',$1)/ge;
$s=~tr/ /+/;'[<a href="URLリンク(foo.bar?query=)'.$s."\">$r</a>]"#ges;
こんな風でどう?
207:nobodyさん
07/10/06 00:35:40 1+GhnPpX
>>205-206
どちらも上手く機能しました。
奥が深いですね
208:nobodyさん
07/10/06 16:42:21 kTx5Crj6
普通の文字として\を表現するにはどうすればいいですか?
C言語風には、'\\'みたいなやつです
209:nobodyさん
07/10/06 17:45:43
まずはそれを試してみてください
210:nobodyさん
07/10/06 17:50:21 kTx5Crj6
ためしたけど、駄目でした。
\\\ってかいたら一個認識した。
でも\\って連続する文字列は、\\\\\\だと駄目だった。
謎
検索に使ってるエディタは、UnEditorです
211:nobodyさん
07/10/06 18:29:58 C0xnGICK
>>210
「\\\\」 というエスケープシーケンスが解釈されて文字列 「\\」 になり、 文字列 「\\」 が正規表現として解釈されて 「\」 を表すと見た。
その推測からすると、 「\\」 を表すには 「\\\\\\\\」 と打てばよい。
212:nobodyさん
07/10/06 18:34:59 kTx5Crj6
>>211
なんという\
いけました。ありがとうございます。
213:nobodyさん
07/10/07 17:23:56 bdyGFUK8
半角英数文字だと>>205の方法でOKなんすですが、日本語の文字列の場合、エンコードする必要があるので
>>206のようにしなければならないわけですね。今、気がつきましたよ。
214:nobodyさん
07/10/25 15:30:25
phpで、変数にファイル名を入れて処理したいんですが
正規表現で文字制限をかける場合どのように書けばよいでしょうか?
日本語を含まなければ簡単そうですが、、、、
215:nobodyさん
07/10/25 16:34:35
>>214
どゆこと?どんな制限をかけたい?
216:nobodyさん
07/10/27 01:42:21
>>214
つマルチバイト
217:nobodyさん
07/11/05 12:34:21
(愛うえお) [下記kuけこ] saし素せそ [07.07.07]
↑の様にファイルに名前をつけているのですが、これを下のようにリネームしたいのです。
(愛うえお) [07.07.07] [下記kuけこ] saし素せそ
[07.07.07]は日付です。2006/10/15なら[06.10.15]となります。
正規表現でどのように表現したら一括変換できるでしょうか?
どなたか御教示ください。
218:nobodyさん
07/11/05 12:38:12 EztAcqYR
もしスレ違いでしたら案内していただけると助かります
219:nobodyさん
07/11/05 12:47:34
>>217
まずは >>1 の二項目。
220:217
07/11/05 13:09:25 EztAcqYR
>>219
失礼しましたPerl5です。
URLリンク(www.hi-ho.ne.jp)のDLLを使って
Nameryでリネームするつもりです。
的外れなレスだったらすみません
221:nobodyさん
07/11/05 13:59:05
「連続置換・マクロ」にチェックして、こんなんでどう?
s/^(\(.+?\))( \[.+?\] .+?)( \[.+?\])/\1\3\2/
空白の処理とか適当なので、あとは自分で調べていろいろいじってみてちょ。
222:nobodyさん
07/11/05 14:37:50 EztAcqYR
>>221
バッチリできました!ありがとうございました
しかし依頼するカタチを間違えていましたorz
gomennnasaigomennnasaigomennnasai
(愛うえお) [07.07.07] [下記kuけこ] saし素せそ
↑ではなく↓にするにはどうすれば・・・
(愛うえお) [下記kuけこ] [07.07.07] saし素せそ
223:nobodyさん
07/11/05 14:41:33 EztAcqYR
間違えた>>222は無視してください
はぁゆとりすぎて面目ない
224:nobodyさん
07/11/12 05:47:51 Kg6xKnVX
「あいうえおABC+F481ABC+F485かきくけこABC+F7A5さしすせそABC+F3F0ABC+F39EたちつてとABC+F65AなにぬねのABC+F485ABC+F7A5はひふへほABC+F7A5ABC+F39Eまみむめも」
上記の中に、「ABC+16進数x2回」がいくつ含まれているかをPHPの正規表現で表すにはどうかけばよろしいでしょうか?
ご鞭撻よろしくお願いいたします。
225:nobodyさん
07/11/12 10:41:44
>>224
正規表現はいまひとつなのでもっと上手いやり方があるかもしれないが・・・
$input_str = "あいうえおABC+F481ABC+F485かきくけこABC+F7A5さしすせそABC+F3F0ABC+F39EたちつてとABC+F65AなにぬねのABC+F485ABC+F7A5はひふへほABC+F7A5ABC+F39Eまみむめも";
echo preg_match_all("/ABC\+[A-F\d]{4}/",$input_str,$out_ary);
※$out_aryは無いとエラーになるので消さないで
226:nobodyさん
07/11/13 16:45:36 KDxCSN/c
質問です
PHPスクリプトでpreg_match("/^[^@]+@[^.]+\..+/", $superunkoman))
という正規表現があったのですが
^[^@]+ ←最初の文字が@以外の文字の一回以上の繰り返し
@ ←で、@が入り
[^.] ←この部分が理解できません。
教えてください
227:nobodyさん
07/11/13 17:15:59
>>226
ドット以外の文字列が1つ以上
hoge@.ドメイン.ne.jp
だとか画駄目ってことじゃないの?
228:nobodyさん
07/11/13 17:39:32
>>227
ありがとうございました。そのとおりですね
229:nobodyさん
07/11/13 22:44:37
質問です
phpスクリプトで
$str = ereg_replace(
"(https?|ftp)(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)",
"<a href=\"\\1\\2\">\\1\\2</a>",
$str);
この正規表現の(://[[:alnum:]\+\$\;\?\.%,!#~*/:@&=_-]+)の部分とhref=\"\\1\\2\">\\1\\2</a>この部分は
何を表しているのか教えてくれませんか?
230:nobodyさん
07/11/14 12:22:47 E8xVrSo0
あげわすれ
231:nobodyさん
07/11/14 13:37:57
>>230
次回からはまずマニュアル嫁
PHPマニュアルより引用
string ereg_replace ( string pattern, string replacement, string string )
pattern の中に括弧でくくられた部分 文字列が含まれている場合、
replacement の中に \\数字 のような部分文字列を埋め込むことも
できます。この部分は、 「数字」番目の括弧でくくられた部分文字列に
マッチする文字列に 置き換えられます。また、\\0 は文字列全体を
指します。9 個までの部分文字列を使うことができます。括弧は
入れ子になっていても構いません。この場合は開き括弧 '(' が
最大 9 個まで使用可能です。
232:nobodyさん
07/11/23 11:29:24 OIbrK2sw
正規表現を先輩から教えてもらったのですが、
文字列 [全ての文字] を 正規表現 [[]([^\]]+)] で 全ての文字 を取り出
すことができますが、
文字列 {全ての文字} で 全ての文字 を取り出す正規表現を教えてください。
233:nobodyさん
07/11/23 15:30:11
>>5
234:nobodyさん
07/11/23 20:53:35 tvqFA7ba
それは無理ですよ
すべての文字
を取り出す事は
235:nobodyさん
07/11/27 18:05:34 fIXcwnBh
Dカップ以上の25歳以下で抽出したいです
PHP5です
236:nobodyさん
07/11/27 19:15:14
[D-Z]カップ.*(1?[0-9]|2[0-5])歳
237:nobodyさん
07/11/28 13:29:18 fpWBgokp
PHPで正規表現であれやこれやと苦戦してます。
で、正規表現チェッカー
URLリンク(www.asterworld.com)
という物をみつけて、こりゃ便利だ!と思ってたのですが
作成した正規表現を preg_replace に設定してもマッチしてくれません。
そんなに方言があるとも思えないのですが...
C#2005の正規表現のようなのですがPerlの正規表現と何がちがうのでしょうか。
C#2005の正規表現をPerlの正規表現に変更するには無理なのでしょうか。
Perlの正規表現を作成するようなソフトはあるのでしょうか?
恐れ入りますがどなたか教えてください 頭がゴチャゴチャしてきて..
238:nobodyさん
07/11/28 15:10:44
もっとかなり基本的なところで勘違いしているんではないかと想像。
まずは、これ以上ないってくらい単純な正規表現で挙動を比較してみて、
そこから順次複雑な正規表現にしていって差異を見てみては。
239:237
07/11/28 15:41:05
ネットで調べても、どの言語の正規表現なのか今ひとつ判らないので
取り合えずアマゾンで本を注文しました。
言語ごとの差が判るようなものがあれば...
240:238
07/11/28 15:48:56
C# なら .NET なんだろうけど、「詳説 正規表現 (第2版)」には差異などが載ってる。
それで、ぱっと見で、基本的なところは Perl と .NET とで大した差は無いと思う。
241:237
07/11/29 13:36:57
「正規表現の達人」って本を手にして今、読んでますが、
お昼食べた後なんで眠くて眠くて フワァァ(/ 0 ̄)~゜
がんばってみます。。
242:nobodyさん
07/12/11 20:35:33
すみません、ヘルプをお願いします。
PHPにて、特定の画像ファイル名を持つ<IMG>タグを抽出するという正規表現を作りたいのですが
上手く行かなくて困っております。
どなたか、お助けください。。。
243:nobodyさん
07/12/12 01:18:37
>>242
もちっとくわしく。src属性以外に属性をもつのかとか。
多分alt属性がついていそうだけど。
preg_match('/<img .*?src=(["¥'])特定のファイル名を表す正規表現¥¥1 .*?>/', src);
とかか。今適当に作ったのでうまく動くかどうかはわからんけど
244:nobodyさん
07/12/19 16:38:31 H15tWjcK
PHPのpreg_replaceなんですが、おたたすけ願います。
特定の文字列で囲まれた文字列を変換しない正規表現を教えてください。
たとえば
preg_replace("/aaa/", "[\1]", "aaa aaa aaa aaa aaa")
だと結果は "[aaa] [aaa] [aaa] [aaa] [aaa]" になりますが
preg_replace("/aaa/", "[\1]", "aaa{{{aaa aaa aaa}}}aaa")
となっていたときに
"[aaa]{{{aaa aaa aaa}}}[aaa]" という結果を取得したいんですが
思うように出来ません。
答えを直接出なくてもいいのでヒントだけでも教えてください。
245:nobodyさん
07/12/19 18:16:44
>>244
後読み表明は量指定子を含められないから、もしpreg_replaceだけでやろうとするなら、
それ以外の部分を食わせておいて置き直すという、やや気持ち悪いことになると思う。
例えばこんなふうに
preg_replace('/(.*?(?:\\Q{{{\\E.*?\\Q}}}\\E.*?)*)(aaa)/', '$1[$2]', "aaa{{{aaa aaa aaa}}}aaa");
分解してから対象の部分だけ処理する等の方法も検討した方が宜しいかと。
246:nobodyさん
07/12/19 18:44:19
大田区ホームページ:職員の不祥事について(処分の公表)
URLリンク(www.city.ota.tokyo.jp)
当区職員が傷害の容疑で逮捕されるという事件につきましては、新聞等での報道やホームーページで公表したところですが、今回、事実関係が明らかになり、以下のとおり懲戒処分を行いましたので公表いたします。
区民の皆様の信頼を裏切ることとなり、誠に申し訳ありません。あらためて、お詫びいたします。
懲戒処分とは
職員が一定の義務違反を犯した場合に、公務の規律と秩序を維持することを目的として、その責任を追及するために制裁として行う処分です。
大田区では懲戒処分の公表基準に基づき、免職処分をした場合や特に区民の関心が大きい事案又は社会的影響が大きい事案について、個別の懲戒処分を公表します。
(懲戒処分の制度の詳細は、大田区人事白書をご参照ください。)
処分発令日
平成19年12月19日
被処分者氏名
建築調整課 吉原 幸光
処分の内容
停職3月
処分の理由
一般非行関係(法令に違反し、全体の奉仕者たるにふさわしくない非行があったため)
事件の概要
この職員は、平成19年11月16日(金曜日)、勤務時間終了後、東神奈川駅周辺で飲食した後、帰宅途中のJR京浜東北線川崎―蒲田間の電車内において、乗客男性に全治4週間の怪我を負わせる暴行を働き、傷害の容疑により蒲田警察署に現行犯逮捕されました。
同職員は、東京簡易裁判所に起訴され、罰金刑を申し渡されています。
247:nobodyさん
07/12/22 08:43:52 KKfYoqPi
すみません、教えてください。
PHPで携帯電話に文字列を表示する際に、
電話番号の部分をteltoリンクにしたいと思い以下のように書きました。
$bodySTR = preg_replace('/([-0123456789]+)/', '<a href="tel:\\1">\\1</a>',$bodySTR);
当然ながらこれだと、「100円」や「〒123-4567」にも反応してしまいます。
そこで、
「03-1234-5678」「090-1234-5678」「03−1234−5678」等にマッチして
「100」や「123-4567」にはマッチしない正規表現は可能でしょうか?
248:nobodyさん
07/12/22 14:06:28
可能です
249:nobodyさん
07/12/22 16:17:35
/(0¥d+-¥d{1,4}-¥d{4})/
でどうよ
250:nobodyさん
07/12/22 17:39:05 6MoMAQ1+
perlの正規表現について質問です。
>>244の方と同じ様なものなのですが
"test <a href="URLリンク(test.jp)<)">[test]"
という形にしたいのですが、どのようにすれば宜しいでしょうか。
一度置換した後、<>タグ内の物は[]を外す方法も考えてはみたのですが、
思うように動作させる事が出来ず。ご教授の程、宜しくお願い致します。
251:nobodyさん
07/12/22 17:52:18
s/(<.*?>|test)/$1?$1:"[$2]"/ges
252:250
07/12/22 18:04:13
>>251
なるほど、どうも有難う御座いました!
253:nobodyさん
08/01/14 12:16:38 6AXqvVgD
時間(13:00:00〜18:00:00)までを正規表現であらわしたいのですが、
1[3-8]:[0-5][0-9]:[0-5][0-9]
という感じに今なっています
誰が見てもわかりやすいしこれでもいいのですが、もっと短い書き方はないものでしょうか?
[0-5][0-9]ここが反復なので、([0-5][0-9]:?){2}とか思いつくのですが、
これだと最後にコロンが入っててもマッチしてしまうので回避できるような書き方はないものかなぁと。
254:nobodyさん
08/01/14 13:51:53
1[3-8](?::[0-5]\d){2}
255:nobodyさん
08/01/15 02:35:00 HyHnFj45
私が小学生の頃、
日本中でノストラダムスの予言が大流行していた。
「1999年の7月に人類は滅亡する!」
という例のお騒がせ終末予言である。
大人になって社会に出て働きだして、
あくせくと忙しく日々を過ごしながら、
1999年は、
ありふれた日常の中であっさりと過ぎていった。
人類は滅ばなかった。
これからここで、
1999年に起こるかもしれなかった人類の壊滅的破局を、
誰にも知られずにこっそりと回避させた人たちがいた...
という設定で、
荒唐無稽なストーリーを描いてみたい。
無論、100%完全なフィクションである。
URLリンク(www5.diary.ne.jp)
256:nobodyさん
08/01/20 11:20:53 TPbCvsXG
/([^>|\+|\s]+)\s*([>|\+]?)\s*/g
この正規表現はどういうことでしょう?
何にマッチさせようとしているのでしょうか。
JavaScriptです。
257:nobodyさん
08/01/20 11:37:26
[]の中で|を使ってOR条件にしてるから書いた人は勘違いしてる
258:nobodyさん
08/01/20 12:50:55 TPbCvsXG
本来なにをしたかったんでしょうか・・・。
259:nobodyさん
08/01/21 16:00:34
PHPの正規表現についての質問です。
2chのdatを各要素毎にキャプチャしたいのですが、
preg_math_all('/((.*)<>)*/', $dat, $match);
と書いて実行すると全体が丸々$matchへ格納されます。
$datへは「 要素1<>要素2<>要素3<>要素4<>要素5 」という形式のデータが入っており要素5は1行目にのみ存在します。
また、各要素は空欄の場合もあります。
初歩的な質問で申し訳ありませんが、よろしくお願いします。
260:nobodyさん
08/01/21 16:01:39
>>258
こちとらお前さんにそれを聞きてえぐらいだよ。
261:nobodyさん
08/01/21 16:03:38
>>259
preg_split で "<>" で配列にばらした方が扱いやすいかも。
262:259
08/01/21 16:15:53
>>261
レスありがとうございます。
確かにphpには要素を分解する為の便利な関数が始めから用意されておりますが、今回はあえてpreg_matchを用いて自身で分解してみたく思います。
自分にはハードルが高い気もするので、手始めに要素5だけを取り出そうと挑戦してみたのですが、
/<>(.+)$/ と書くと要素3<>要素4<>要素5がキャプチャされてしまいます。
やはり当方の正規表現に対する解釈が根本的に間違っているのでしょうか。
連投になり大変申し訳ないのですが、こちらの質問へのみご回答お願いいたします。
(>>259は回答を得ましても自分には理解の範疇を超えていると判断しましたので)
263:nobodyさん
08/01/21 19:42:35
[^<>]
264:259
08/01/21 20:27:24
自己解決しました
265:nobodyさん
08/01/21 22:14:14
>>264
どう解決したかくらいは書いてもバチは当たらなくってよ。
266:nobodyさん
08/01/30 11:50:28
perlのgrepで大文字小文字の区別をつけて検索したいです。
@hitlist = grep(/$search_word/i, @search_list);
これを、
@hitlist = grep(/$search_word/$serch_option, @search_list);
($serch_optionにはiやgを事前に設定)
こんな感じにしたいのですが、なんかいい案はありますか?
if文で分岐させるしかないですか?
267:nobodyさん
08/01/30 13:19:43
大小文字区別つけて検索したいならオプションなしで固定でいいでしょ
そこでgオプション使うケースなんてないでしょ
268:nobodyさん
08/01/30 16:28:40
>>266
質問が要領を得てないんだろうけど、
大文字小文字区別つけるかつけないかを切り替えたい、って話ではないかと。
どうすれば良いのかは知らないけど。
269:266
08/01/30 17:01:36
質問の要領が悪くて申し訳ありません。
正規表現のオプションをうまいこと制御できないかなと思いまして。
特に大文字小文字にこだわってるわけではないです。
270:nobodyさん
08/01/31 03:02:38
>>269
大小文字の違いを無視して検索したいときに、パターンの先頭に (?i) 埋めときゃいい。
$pat = ($icase ? "(?i)" : "") . $search_word;
@hitlist = grep /$pat/, @search_list;
とか
271:nobodyさん
08/01/31 15:56:15
proxomitron の正規表現(?)が独自過ぎて、イライラしてくるんだが…
272:nobodyさん
08/02/25 06:25:28 PeKKba69
2008-03 発売(予定)
「詳説 正規表現 第3版」 (Jeffrey E.F. Friedl 著 / 長尾高弘 訳)
ISBN 978-4-87311-359-3 定価 5,040円
273:nobodyさん
08/02/25 12:38:04
高いね。今は Web で検索すればいいからねぇ…今更そんなの出して売れるのか。
274:nobodyさん
08/03/03 22:23:33 3LUWkmBW
質問です!
PHP 5.2.5で、<br>以外のタグ削除を下記のようにしたところ
do {
$res = str_replace( $result_tag[1], '', $res );
} while ( mb_ereg( '(<[a/][^>]+>)', $res, $result_tag ) );
所々で効いてません。
前のサーバー(PHP 4.4.4)では正常に動いていました。
よろしく御指南ください。
275:nobodyさん
08/03/03 23:15:55
>>274
初心者なので間違ってたらごめんなさい。
strip_tagsで、タグ除去と除外タグ指定が可能なはずです。
276:nobodyさん
08/03/04 02:59:10
>>275
ありがとう!
思い通りになりました。
感謝です。
277:nobodyさん
08/03/05 17:20:52
<a href="URLリンク(jumpres)">>>1</a>
<a href="URLリンク(jumpres)">>>34</a>
スレッドまとめサイトの作成においてアンカーのタグだけ外したいのです
よろしくお願いします
278:nobodyさん
08/03/05 18:23:39
>>277
実装言語が Perl と仮定して (Perl でなければ >>1 を読んでちょ) 、こんなかんじ?
s/<a href=".+?">(.+?)<\/a>/$1/g;
279:nobodyさん
08/03/05 18:52:35
ありがとうございます
280:nobodyさん
08/03/16 09:40:37
PHPの正規表現はバグバグなのでバージョンが違えば動作が変わる上に、難しいパターンになるとすぐ落ちる。
281:nobodyさん
08/03/16 12:34:04
嘘書くなよ。
282:nobodyさん
08/03/16 20:44:54
パターン修飾子にパラメータを渡して、長い文字列を検索するとボロボロ落ちる。常識だよ。
283:nobodyさん
08/03/17 06:09:10
rubyのutf-8判定とかもやばそうだね
284:nobodyさん
08/03/17 08:59:29
pcreのバグだね。
pcre-devのメーリングリストでもよんどいて損はない
URLリンク(www.exim.org)
285:nobodyさん
08/03/19 14:02:11 6LA3ff9b
初めて書き込みさせていただきます。
たとえば文字列が
{if(a)}
あああ
{if(b)}
いいい
{/if}
{/if}
と入れ子があったときはどのようにマッチさせたらいいでしょうか?
PHPでお願いします。
286:nobodyさん
08/03/19 15:32:59
入れ子のマッチは正規表現 (だけ) では無理。と憶えておくと良いことがあるらしい。
287:ジョアン
08/03/28 16:46:01 FsCFbn2K
perl の正規表現をPHPに書き直しているのですが、どうしてもわかりません。
Perlではマッチした前後を $` $' で取得できますがPHPではどうして取得するのでしょうか?
288:nobodyさん
08/03/29 12:12:17
つマニュアル
289:nobodyさん
08/04/12 11:24:34
見 れる
290:nobodyさん
08/04/13 12:03:16
>>287
括弧
291:nobodyさん
08/04/26 13:57:41
age
292:nobodyさん
08/05/04 23:26:54
オライリーの正規表現三版
ほしいけど高いね
293:nobodyさん
08/05/19 20:19:05
phpでhoge("****","*****");の****と*****を[1][2]に入れたいのですがどうすればいいでしょうか?
294:nobodyさん
08/05/23 20:19:21
AGE
295:nobodyさん
08/05/23 20:19:44
AGE
296:nobodyさん
08/06/05 16:44:59 0yepAPED
すみません、FC2ブログのIPブロック条件のために、正規表現を書かなければならなくなりました。
そこで、合っているか教えてくださいー。
IP 61.78.0.0〜61.85.225.225 をブロックしたいのです。
このための表現として、私のつたない知識を使って書いてみると
^61\.[78-85]\.[0-9]+\.[0-9]+
なのかなと思ってますが、あってますか?
どうぞよろしくお願いします。
297:nobodyさん
08/06/05 17:25:51
^61\.(?:7[89]|8[0-5])\.
こうじゃないかな
298:nobodyさん
08/06/05 18:12:26 0yepAPED
>>297
ありがとうございます。
^61\.[78-85]\. のところが、^61\.(?:7[89]|8[0-5])\.
って言う意味ですよね?
なるほど。78-85じゃダメなんですね。ありがとうございます!
299:nobodyさん
08/06/06 03:25:44
これが一番わかりやすい。以上
^61\.(78|79|80|81|82|83|84|85)\..*
300:nobodyさん
08/06/08 17:41:28
PHPで、1ページ分のHTMLのソースが$sに入っているとします。
ここで、この$sから特定のタグだけを削除したいのですが、うまくいきません。
例えば<meta 〜〜〜 />というタグが複数あったとして、これをすべて取り除いたソースを作りたいのです。
$s = eregi_replace("<meta.*?>", "", $s);
とやってみたのですが、$sが空になってしまうのです。
ご指南ください。
301:nobodyさん
08/06/08 22:40:27
2過去ログぐらい嫁という言葉は一見突き放しているように見えて
その質問の答えはこのスレの中にあるよという、ヒントを出しているわけで
まぁ、ツンデレなわけです。
302:nobodyさん
08/06/09 02:40:38
>>300
ereg は最短マッチの芸当はできない。
pregでもつかっとけ。
303:nobodyさん
08/06/09 06:50:27
>>300
'<meta[^>]*>'
304:nobodyさん
08/06/09 23:50:23
300です。
ありがとうございます!
そうなんです、最短マッチが動かないなぁと思っていて、まさかeregが
最短マッチできないとは思いませんでした。
pregでやって解決しました!!
305:nobodyさん
08/06/11 15:58:44
300と似てるかもしれないのですが
<a href="aa">11</a><a href="bb">22</a> こういう文字列があるとき
11と22だけを取り出したいと思い
preg_match_all("/<a(.*)>(.*)<\/a>/", 元, $test)
とやってみたところ、取り出せたのが
href="aa">11</a><a href="bb"と22になってしまいました。
?をつけてみてもうまくいきませんでした。
意図したように取り出したい場合どのように記述すればいいのでしょうか?
使用している言語はphpです。
306:nobodyさん
08/06/11 21:01:33
>>305
色々間違えてる。
まず、Aタグで囲んでる部分だけ抜き出すなら( )のペアは一個でいいはず。
次に?を使ってみたと言うが多分何か勘違いしてる。
300はわかってて最短マッチさせてるが305わかってないだろう?
*を?に置き換えたりしてないか?
307:nobodyさん
08/06/12 00:47:05 Hj50XmAm
JavaScriptで下記のようなデータを取得したいです。
hogehoge[1]→1
hogehoge[123]→123
hogehoge[1243][]→1243
[]の中身を取得したく、[]が2つあった場合は最初の[]の中身を取得します。
(ただし、2個目の[]は常に空です。)
hogehogeは任意の文字列で、[]の中身は何桁か分からない数字の繰り返しです。
以上ご鞭撻の程お願いします。
308:nobodyさん
08/06/12 08:16:53
>>307
スレタイ
309:nobodyさん
08/06/12 14:43:44
/\[([1234]+)\]/
310:nobodyさん
08/06/12 14:53:37
GJ
311:nobodyさん
08/06/28 08:39:36 9QUTsyON
PHP質問スレから誘導されてきました。
使用言語はPHPです。
以下のような変数があります。
$str = <<<EOM
あああ<br />
いいい<br />
ううう<br />
<!--S-->
えええ<br />
おおお<br />
<!--E-->
EOM;
このうち<!--S-->と<!--E-->で囲まれている<br />だけを削除したいのですが、
正規表現を使って綺麗に書けるでしょうか?
以下のように試したのですが、<!--S-->と<!--E-->が消えるだけでした。
$str = preg_replace("/<!--S-->([\W\w]+)<!--E-->/",str_replace("<br />","","\\1"),$str);
また、<!--S(E)-->で囲まれている部分は改行や半角英数字などが含まれる場合があります。
どなたかご教示いただけますでしょうか。よろしくお願いいたします。
312:nobodyさん
08/06/28 10:12:28
substr_replaceとstrposでできそうな気がするが
313:311
08/06/28 12:26:16
>>312
ありがとうございます、おかげで解決しました!
314:nobodyさん
08/07/02 18:58:36
,"/web/sendmail.php","10","10","2000"
こういう感じの文章の
,"2000"
のみ抽出したいんですが、どう書けばいいんでしょうか?
",".*[0-9]"$
だと"10","10","2000"まで拾っちゃうんです・・・。
315:nobodyさん
08/07/02 21:54:01
,\"[0-9]{4}\"
316:314
08/07/03 15:40:28
>>315
ありがとうございます。
確かに、それで例は拾えましたが、10と2000の部分は変動するんです。
桁も4桁だったり5桁だったりと様々なので、どうしたもんかなと・・・。
317:nobodyさん
08/07/03 15:46:05
,\"[1-9][0-9]*\"
318:314
08/07/03 15:53:01
>>317
ありがとうございます。
それだと ,"10","10","2000" まで拾ってしまいます・・・。
書き忘れていましたが、秀丸を使って一括選択しています。
319:nobodyさん
08/07/03 16:04:08
> 10と2000の部分は変動するんです
どう変動するんだよ
とり出したい場所の条件を日本語で書いてみ
>315を5桁にも対応させるだけなら
,\"[0-9]{4,5}\"
320:nobodyさん
08/07/03 16:05:46
>>318
,\"[1-9][0-9]*\"$
321:314
08/07/03 16:14:35
>>320
ありがとうございます!!!出来ました!!!
ありがとうございましたー。
>>319
ありがとうございます。
>>320で解決しましたが、極端な話1〜99999999の間で変動します。
322:nobodyさん
08/07/03 16:21:37
>>321
自然数と言え
323:nobodyさん
08/07/03 18:01:39
314 は情報小出し厨という事が解ったから、はやく死ね
324:nobodyさん
08/07/03 19:43:29
そもそも正規表現スレで「こういう感じの文章」なんて質問する時点で(ry
325:nobodyさん
08/07/03 20:01:56
抽象的な表現の質問はスルー
326:PHP
08/07/04 18:37:34 DM0Om0jz
PHP 正規表現
PHPの正規表現を勉強しているのですが、どうもうまくいきません。今回は一番簡単な正規表現をつくったのですが、どうやったらよいのでしょうか。
$h = '(名前)様の会員IDは(abc12)で、(5)番目に偉い方です。';
とあったら、名前、会員ID、番号を抜き出すには、どのようにしたらよいのでしょうか?
実際に()は使用しません。
また、$1 や $2 などを使いたいのですが、解説までできればお願いしたいです。
一応自分なりに考えました。
preg_match('/^*.([a-zA-Z0-9]){2}([0-9]+)','名前$2.ID$1 $3 番目に偉い');
()を使えば、2つマッチさせたいときなどに分けることができるのでしょうか?
(名前)様は(数字)
例:太郎様は5
このとき太郎様という日本語の文字を取得するには/^(+.)([0-9])$/
ここで名前は$1になり、数字は$2になるのでしょうか?
どのような時に$1や$2がどっちがどっちなのかは、どのようにしたらわかるのでしょうか?
長々した質問すいません。わかるかた教えてください。
327:nobodyさん
08/07/04 23:02:41
URLリンク(www.php.net)
取り敢えず、ここを *よく読んで理解* しろ。
328:nobodyさん
08/07/15 00:11:32 PMHjKbcP
質問させて下さい。
PHP5を使っています。
PHPの正規表現関数を使ってデータを取得しようと思っているのですが上手くいきません
<INPUT maxLength=20 name=id value="">
このような文字列を対象に、文字列「type」が含まれていない場合、後方の「maxLength=20 name=id value=""」
を取得したいのです。
全文に対して繰り返し取得したいのでpreg_match_allを使っています。
preg_match_all( "/<input (^type)[^<](.*?)>/is", $data, $matchs )
このように書いたのですがヒットしてくれません。
ドキュメントを見ると、特定文字に関しては[^a-z]のような書き方で対応できるのですが
文字列に関してはどのようにすればよいのでしょうか?
アドバイス頂ければ幸いです。
宜しくお願い致します。
329:nobodyさん
08/07/15 02:02:18
>>328
悪いこたいわないから二段階で抽出しとけ。
先読みを使えば書けないこともないけど、メンテできなくなるぞw
330:328
08/07/15 03:07:47 PMHjKbcP
>>329
レス有り難う御座います。
一段階目は
preg_match_all( "/(<input 「typeを含まない文字列にマッチするような正規表現」[^<]>)/is", $data, $matchs )
となると思うのですが、この部分はどのようにして書けばよいのでしょうか?
はじめ、二段階抽出も考えたのですが、結局
「typeを含まない文字列にマッチするような正規表現」がどうしてもわからずでした。
331:328
08/07/15 08:05:16
自己レスですが、夜通し色々試していたらいけました。
お騒がせしました。
取りあえず、該当範囲をpreg_match_allで取得後、preg_matchでtypeがあるか判定して二段回抽出しました。
332:nobodyさん
08/07/17 17:35:14 LcfXPY+p
<<が出てきて、その後初めて<br><br>が出るところまでのマッチ方法を教えてください。
pregです。
例えば、
hogehoge<<hogehogeh<br>oge<br><br>hogehoge<br><br>hoge<<hoge の
~~~~~~~~~~~~~~~~~~~~~~~~~~~~ の部分です。
333:nobodyさん
08/07/17 17:53:17
<<.*?<br><br>
334:332
08/07/19 19:22:36
>>333
333おめです
なぜか、
hoge<<hogehog
eh<br>oge<br><br>hoge
だとマッチしないのですが。
335:nobodyさん
08/07/19 19:32:09
<<【¥S¥s】*?<br><br>
336:nobodyさん
08/07/20 09:34:06
できました。スマソ
337:nobodyさん
08/07/20 11:43:35
携帯絵文字をすべて
「絵」に置き換えすることはできないのでしょうか?
preg_replace("/[ - ]/","絵",$hoge);
338:nobodyさん
08/07/20 12:01:15 LU799vx+
>>337
キャリアは?
339:nobodyさん
08/07/20 12:03:54
>>338
SoftBankです。
余裕があればau,DoCoMoもですが。。。
340:nobodyさん
08/07/20 12:18:57
>>337
置き換える事はできるけど、正規表現だけでは無理
341:nobodyさん
08/07/20 12:27:01
>>340では、正規表現以外のものもOKなので、
教えていただきたいです。
342:nobodyさん
08/07/20 13:09:57
絵文字 変換 preg とかでググればいくらでも出てくるだろ。。。
ここで聞くより100倍速い。
343:nobodyさん
08/07/24 00:50:31 /c2OsNI4
example.htmlに書かれた
<table>
344:nobodyさん
08/07/24 00:58:57 /c2OsNI4
>>343
誤爆した。。申し訳ない。。
example.htmlに書かれた
<table>
<tr><th>2ちゃんねる</th><td>WebProg板</td></tr>
</table>
をphpのfopen, fgetsで1行ずつ読み取っています。
<tr>から始まった行の「2ちゃんねる」とWebProg板「WebProg」部分のみ抽出したいので
preg_replace("/^<tr><th>(.*?)</th><td>([a-zA-Z])</td>/i","$1$2",$str);
としたのですが、うまく抽出できません。
アドバイスをいただければありがたいです
345:nobodyさん
08/07/24 01:43:31
/^<tr><th>(.*?)</th><td>([a-zA-Z])</td>/i
正規表現が / で始まってるから / で終わることになるわけだけど、途中に</th>ってのがあるわけよ
m#<t[dh][^>]*>(.*?)</t[dh]><t[dh][^>]*>(\w+)#i
こんな感じになるかな
346:nobodyさん
08/07/24 23:33:27
デリミタの問題だけじゃないの?
preg_replace("/^<tr><th>(.*?)<\/th><td>([a-zA-Z])<\/td>/i","$1$2",$str);
347:nobodyさん
08/07/25 08:54:32
これって[a-zA-Z]、[a-zA-Z]+こうしなくてもいいの?
348:nobodyさん
08/07/27 01:11:32 sEx2Pn85
質問させてください。
サクラエディタに鬼車5.9.1を搭載して正規表現の勉強をしているのですが、手元にある詳説正規表現には
(<)?\w+(?(1)>)
このような例があり、<があれば>のマッチを試みる?ということができるみたいです。
ただ、鬼車はこの表現をサポートしていないみたいです。
URLリンク(www.geocities.jp)
同様のことを鬼車でも実現する方法ってあるのでしょうか?
349:nobodyさん
08/07/29 05:43:25
一番最初に出てきた「=」だけ反応するにはどうしたらいいでしょうか。
C#です。
350:nobodyさん
08/07/29 19:46:22
行頭の=という意味なら
/^=/m
だけどC#での正規表現の使い方は知らんので応えられん。
351:nobodyさん
08/08/06 01:01:06 hVakYDWk
PHP5覚えたての初心者です
スレ冒頭に()と(?:)の違いについて質問されてましたが
?:の意味ってなんですか?
わかりやすい解説ページなどもあれば教えてください。
352:nobodyさん
08/08/06 02:34:12
google
353:nobodyさん
08/08/06 19:40:10
>>351
?:じゃ?と:だよ。
(?:〜)で意味をなす。
354:nobodyさん
08/08/21 14:34:46 wSsr/o3s
質問させて下さい。
PHP5を使用しています。
文字列内にマルチバイト文字が一つでも含まれていれば真と言う正規表現を行いたいのですが
どのようにすればよいでしょうか?
ドキュメント等から調べてみて、
mb_ereg("[0-9a−zA−Zあ−んア−ン]", $str )
のようにしてみたのですが、これでは漢字にヒットしません。
アドバイス頂ければ幸いです。
宜しくお願い致します。
355:nobodyさん
08/08/21 14:44:38
単純に先頭ビットがおったってるかどうか見ればよくない?
[\x80-\xff]
356:nobodyさん
08/08/21 15:28:45
>>355
ありがとうございます。
やってみます。
357:nobodyさん
08/08/22 02:32:16
>>354
1バイト文字を列挙したのを否定すれば?
あと、文字コードによっては半角カナがマルチバイトだったり
そうじゃなかったりするんだけど、どうするのかな?
358:nobodyさん
08/08/25 10:35:16 P/JycA8t
htmlのタグを削除するのに、ふつうは
$line =~ s/<\/?[^>]+>//g; ----(1)
だと思うけど、どこかで見た方法では、
$line =~ s/<[^>]*(>|$)//g; ----(2)
となってた。これ動作は同じなのかな?(2)の意味がイマイチ分からない。
359:nobodyさん
08/08/25 20:52:33
(1)の \/? は書いても意味ない(/は[^>]に含まれるから)
(2)の (>|$)は、$lineという変数名から推測するに行単位で読み込んで逐次処理した
場合に、タグの途中で改行されていて>が見つからなくても行末まで削除する為?
でもそうしたら次の行で処理がうまく行われないしよくわからん
行単位だとタグ途中で改行される場合もあるから全部読み込んで一気に処理がいい
s/<.*?>//g;
s/<[^>]*>//g;
などなど・・
360:359
08/08/25 21:09:55
間違った、s/<.*?>//g;だと改行に対応できないから
s/<[\s\S]*?>//;みたいになるね
361:nobodyさん
08/08/25 21:28:12
いや、s使うだろ、普通。
362:nobodyさん
08/08/25 22:34:46
>>358
(2)はSGMLのショートタグの対応とか?
URLリンク(www.asahi-net.or.jp)
開始タグで前のタグを閉じる以外は、メジャーなブラウザは対応してなかったはずなので、
あまりこだわらなくてもいいと思うけど。
363:358
08/08/25 23:08:43
ありがとうございました。
改行文字の件とか、勉強になりました。
プログラム上では、どちらも同じ動作なので、気になってたもので。
364:nobodyさん
08/08/27 15:31:16 j0h2/LpG
正規表現で悩んでいます。
preg_match_all( "/((aaa|bbb|ccc).*?)(aaa|bbb|ccc|$)/is", $str, $maches )
このような形にて以下のような内容の繰り返し文を部分的に抜き出そうとしているのですが一部上手くいきません
---------------------
aaa
あいうえお
bbb
かきくけこ
ccc
さしすせそ
---------------------
上記正規表現では
aaa
あいうえお
bb
かきくけこ
cc
さしすせそ
と言うように一つ目以降のパターンマッチ文字列の先頭がbbやccとして一文字かけてしまいます。
本来はbbb、cccとちゃんとヒットさせたいのですが、これが行えません。
マッチ後の文字列ポインタを「三歩歩いて二歩下がる」のようにずらす事をするか、何か他のパターンマッチ構文を
書けばいけそうだと思うのですが、どうにもよい方法が思いつきません。
お力添え頂ければ幸いです。
365:nobodyさん
08/08/28 12:04:03
テストしてあげるからそのままコピペできるコードに書き換えてここに載せて
366:nobodyさん
08/08/28 18:14:41 Gzy07epa
あいうえお かきくけこ
さしすせ そたちつてと
なに ぬねの はひふへほ
この
「あいうえお」「さしすせ」「なに」
を太字に置き換えるにはどうすればいいですか?
(PHP)
$hoge = preg_replace("/^([^ ]+)/m","<b>\\1</b>",$hoge);
じゃうまくいきません。。。
367:366
08/08/28 18:25:55
すいません。
自己解決しました。
368:nobodyさん
08/08/28 18:44:08
解決策を書いて下さい。
369:nobodyさん
08/08/28 18:50:35
いやぁ
$hoge = preg_replace("/^([^ ]+)/m","<b>\\1</b>",$hoge);
$hoge = str_replace("<br>","<br>\n",$hoge);
って書いてましたwww
370:364
08/08/29 11:10:56 rNMP0NTC
>>365
レスありがとうございます。
もう一度考え直してみて書き直すとこのようなコードになりましたPHP5になります。
// 対象文字列
$str = "ABCDaaaEFGaaaaHIJKaaaaa";
// 正規表現
preg_match_all( "/([A-Z]+?aaa.*?)([A-Z]|$)/is", $str, $maches );
// 結果表示
$c = count( $maches[1] );
for ( $i = 0; $i < $c; $i++ ) {
print "=> {$maches[1][$i]}\n";
}
=> ABCDaaa
=> FGaaa
=> HIJKaaa
これを
=> ABCDaaa
=> FGaaaa
=> HIJKaaaaa
と表示させたいのです。
どうか宜しくお願い致します。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5311日前に更新/179 KB
担当:undef