正規表現道場at PHP
正規表現道場 - 暇つぶし2ch619:nobodyさん
10/05/02 04:08:13
>>618
スマートさではこっちのが上だね :P
(:(wink|lol|cry|evil|twisted|roll|idea|arrow|mrgreen|\!|\?|oops|x|ase|ahhh|star0.0|star0.5|star1.0|\!\!\!|\*\*|heart|\!\!|hahaha|chin):)
|(:)|:-(|:-o|:-D|8-\||8-)|:??|:-P|=:[|:[]|:\|)

620:nobodyさん
10/05/02 04:53:21
>>619
色々バグってた

my @g = $str =~ /(
(?: \:
(?: ahhh | arrow | ase | chin | cry | evil | hahaha | heart | idea | lol | mrgreen | oops | roll | star0\.0 | star0\.0 | star0\.5 | star1\.0 | twisted | wink | x | \!\!\! | \!\! | \! | \*\* | \? )
\:)
|
(?: \:-\) | \:\-\( | \:\-D | \:\-P | \:\-o | \:\?\? | \:\[\] | 8\-\| | 8\-\) | \=\:\[ )
)/gx;

621:nobodyさん
10/05/02 10:16:16
>>618のだと:aaaaa:とか存在しないものまでマッチしちゃうよ?

((?:\:(?:(?:ahhh|arrow|ase|chin|cry|evil|hahaha|heart|idea|lol|mrgreen|oops|roll|star(?:0\.[05]|1\.0)|twisted|wink|x|\!{1,3}|\*{2})\:|\?[:?]|(?:\)|\[\]|\||\-[(oDP])))|(?:8\-[|)])|=\:\[)

622:nobodyさん
10/05/02 11:44:31
>>619-621
そうか、未来の拡張を考えて緩くしたけど、
2バイト文字以外のブログじゃ広くマッチしすぎるって事か。。。
それじゃスマイリーコードの方に厳格なルールを...
なんって考えるのもユーザーに優しくないし。
折り合いつけるの難しいね :|



623:nobodyさん
10/05/02 19:52:37
>>622
厳格さが必要でない処理が行われるというのがイメージできんのだけど、
マッチさせてどうしたいんだ?

624:nobodyさん
10/05/02 20:21:19
>>623
とあるCMSで、
引用表示の時は、リンクとか画像とか取っ払う追加プログラム書いてるから。

625:nobodyさん
10/05/02 22:35:26
>>624
文から推測すると、前提として普通の記事の場合はスマイリーコードとやらが画像に変換されるということがあって、
その記事が引用されてる場合はそれらを除去したいということか?

前提が正しいならスマイリーコードを画像に変換する時に使ってるルールを厳格に使うべきだし、
正しくないならリンクでも画像でもないスマイリーコードを除去する必要がないと思うんだが

626:nobodyさん
10/05/02 23:09:45
>>625
正解です。
通常記事ではスマイリーコードが画像に変換されます。
で、引用時には、それら(改行,スペース,タブ,画像,リンク等)を除去して
コンパクトにしたいのです。

引用文にスマイリーが入ってもいいんですが、
記事を丸める過程で<img>タグが邪魔したので、除去するを仕様としました。


627:nobodyさん
10/05/03 00:05:08
>>626
一度img要素に置換したものをベースにするというのがそもそもおかしいのでは?
もしかして表示する直前に置換してるんじゃなくて、DBに突っ込む段階で置換しちゃってるとか?
それだったら設計を見直したほうがいいと思うんだけど

628:nobodyさん
10/05/03 00:07:04
>>626
じゃあやっぱり >スマイリーコードを画像に変換する時に使ってるルールを厳格に使う が一番スマートなんじゃないか
それができないなら一旦引用されていない記事として処理して、そこからimgタグを除去するとか

正規表現の話からはだいぶそれたので俺はこれ以上何も言わないことにするよ :P

629:nobodyさん
10/05/03 00:36:11
>>627-628
スマイリーコードが置換されるのはDBから引っ張ってからですが、
追加プログラムの導入IDによって優先順位があるので単純ではないんです。。。

で、私も正規表現から脱線しすぎなのでこれが最後。

脱線ついでに、タイムズスクウェアで爆発物を積んでた車って。。。
家の車も正規表現でマッチしちゃうwww


630:nobodyさん
10/05/19 16:47:15 t/z/xcK5
質問させてください!

ああああああ @ ABCD @ abcd

という文字を

<b>ああああああ</b> @ ABCD @ <em>abcd</em>

のように置換したい時はどういう正規表現を使えばいいのでしょうか?

よろしくお願いいたします

631:nobodyさん
10/05/19 17:44:20
その例にするための条件って何?
スペース @ スペース が区切りとか?

632:nobodyさん
10/05/20 19:43:15 avs5qFDL
質問させてください。

<table>
<tr>
<th>名称1</th>
<td>
値1
</td>
</tr>
<tr>
<th>名称2</th>
<td>
値2
</td>
</tr>
</table>
のようなHTMLがあります。
実際には全ての改行とインデントはトリムされてます。
この値1の部分をとるにはどのような正規表現を使えば良いでしょうか?

<th>名称1</th><td>([^<]*)</td>
のように考えてましたが値1には<img>タグが入る場合があります。
<table>や<td>が入ることはありません。


633:632
10/05/20 19:44:24
途中で投稿してしまいました。

お手数ですがご教授よろしくお願いします。
なお、当方18歳女子になります。

634:nobodyさん
10/05/20 19:54:06
<th>名称1</th><td>(.*?)</td>

635:nobodyさん
10/05/20 20:40:36 a5arSWsA
URLリンク(www19.atpages.jp)
URLリンク(ukiya.sakura.ne.jp)
URLリンク(ukiya.sakura.ne.jp)


636:nobodyさん
10/05/20 21:13:11
<th>名称1</th><td>(値1|<img>)</td>

637:632
10/05/21 22:05:20 E8tDrX2s
ありがとうございました。
無事に解決できました。
これより踊りに行くのでこれにて失礼致します。

638:nobodyさん
10/05/24 12:25:48
便乗だけど
<table>
<tr>
<th>名称1</th>
<td class="abc">
値1
</td>
</tr>
<tr>
<th>名称2</th>
<td class="def">
値2
</td>
</tr>
...あと何個か続く

この場合 <th>名称1</th><td .*>(.*?)</td> にしたのですが
何故かうまく 値1 だけ取得できません
どうも .*で余計なものも取得しているようです
どう書けばいいでしょうか
当方JKです。



639:nobodyさん
10/05/24 14:40:31
<th>名称1</th><td .*?>(.*?)</td>


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch