[過去ログ] 正規表現道場@2ch Part3 s/煽り|荒らし/あぼーん/g (989レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
491(1): 04/07/16 17:28 ID:??? AAS
PHPの質問なのですが、全角・半角を無視して検索文字列をハイライトするいい方法ありませんかね?
パフォーマンスが悪いのは承知で、
$hage = mb_convert_case($hoge, 'asKV')
$hage = preg_replace('/pattern/', '<span class="match">$0</span>', $hage);
$part = preg_split('/(<.+?>)/', $hage, 0, PREG_SPLIT_DELIM_CAPTURE);
$result = '';
$pos = 0;
foreach ($part as $key => $value) {
if ($key % 2 == 0) {
if (($len = mb_strlen($value)) > 0) {
省9
492: 04/07/16 17:35 ID:??? AAS
>>491
PHPスレで聞いたほうがいい
493(1): 04/07/17 01:01 ID:l2+iEUo8(1/2) AAS
PHPで。
雑多な文字列の入ったテキストファイルの中から、ホスト名を抽出するにはどう書けばいいのでしょう。
実際やりたいことは、テキストファイルからホスト名部分を抽出→ereg_replaceで空白に置換え。
つまりホスト名の削除です。
494(1): 04/07/17 01:19 ID:??? AAS
>>493
そのホスト名に当てはまる条件を提示してください
495(1): 04/07/17 04:58 ID:aixfBR+9(1) AAS
はじめまして。
以下のような文字列にて"#"より後ろの文字列を
正規表現を使用したeregi_replace関数を用いて全て削除しようと考えています。
("#"も含みます)
$stirng = "あいうえおaiueo#かきくけこ"
以下のようにやっていますが、うまくいきません。
$b = eregi_replace("[#.*]","",$stirng);
どのようにすればよいのでしょうか?
496(1): 04/07/17 07:45 ID:??? AAS
>>495
"#.*"
497(1): 04/07/17 11:31 ID:l2+iEUo8(2/2) AAS
493です。
>>494
各行から以下のような形式のホスト名部分を削除
#####
YahooBB***********.bbtec.net
\\******.ppp.dion.ne.jp
\*****-*****\\****\-acca.tokyo.ocn.ne.jp
\\***\*\.speednet.ne.jp
\\\.\\\.\\\.\\.ap.highway.ne.jp
*=数字 \=アルファベット(大文字小文字混在)
省3
498: 04/07/17 11:47 ID:??? AAS
>>497
>>102-114
499: 04/07/17 14:48 ID:TroGWL8b(1/5) AAS
>>496
ありがとうございます!
本当に助かりました。^^
500(1): 04/07/17 15:11 ID:TroGWL8b(2/5) AAS
split関数にて以下のようなスペースが1つもしくは複数連続に続いてる部分を区切りとして
配列にする場合、split関数の引数はどのように書けばよいでしょうか?
$b = " 02600 0 1111"
現在、$a=split(" *",$b);でやっておりますが、うまく出来ません。
よろしくお願い致します。
501(1): 04/07/17 15:15 ID:TroGWL8b(3/5) AAS
>>500
訂正です。
$a=split(" +",$b);でやっておりますが、うまく出来ません。
補足です。
上記の例の場合、配列$aに以下のように入れたいと思っています。
$a[0]=02600
$a[1]=0
$a[0]=1111
よろしくお願い致します。
502(1): 04/07/17 15:16 ID:TroGWL8b(4/5) AAS
>>501
すいません。また訂正です。
$a[0]=1111
↓↓↓↓↓
$a[2]=1111
503: 04/07/17 15:30 ID:TroGWL8b(5/5) AAS
>>502
出来ました。
スペースの全角と半角の区別をしてなかったのが原因でした。
失礼しました。
504(1): 04/07/18 10:56 ID:??? AAS
/"[^"]*"/
これでダブルクオートに囲まれた文字列に一致すると思うんですが、
ダブルクオートの中にエスケープされたダブルクオートがあると、そこまでで一致終了してしまいます。
当然ですが。
エスケープされた物を無視させるにはどうすればいいですか
505: 04/07/18 11:12 ID:??? AAS
/".*"/
506(1): 04/07/18 11:45 ID:??? AAS
>>504
"foo\"bar" と \ でエスケープするなら
/(?<!\\)"((?:\\"|[^"])*)"/ で $1 に foo\"bar が入る。
…少なくとも Perl 5.005 以降なら。
507: 04/07/18 15:24 ID:??? AAS
>>506
おおっと
なるほど・・・・
\\"|[^"]が思いつかんかった・・・・・
ありがとうございます
508(1): 04/07/18 21:19 ID:??? AAS
あれ
でもこれだと
"test\""
これに対応しない・・・
test
になっちゃった・・・・・
509: 04/07/18 22:03 ID:??? AAS
ここはチラシの裏じゃありません
510: 04/07/18 22:14 ID:??? AAS
>>508
使用言語とテストコードを書いてくれんと何が悪いか分からんよ。
#!/usr/local/bin/perl
require 5.005;
$_ = '"test\""Test:"\100-", tes"T""t\"e\"S\"t"';
print "$1\n" while /(?<!\\)"((?:\\"|[^"])*)"/g;
print "$1\n" while /(?<!\\)"([^"]*(?:(?<=\\)"[^"]*)*)"/g; # ループ展開版
__END__
上下前次1-新書関写板覧索設栞歴
あと 479 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.024s