アナログCPU:5108843109

ゲームと音楽とプログラミング(酒と女とロックンロールのノリで)

文字列処理

ある文字列について、特定文字以外が含まれている場合に取り除く関数

正規表現を使わない書き方。 例えば「ある文字列について、半角英数以外の文字を削除したい」という場合などに。 '* '* StrFilter '* ある文字列について、特定文字以外が含まれている場合に取り除く(もしくは置換する)関数 '* '* [in] sStr 対象文字列 '*…

マルチバイト文字列関数の罠

ある時、CSVのデータをインポートする処理で不具合が発生。 「2件のデータをまとめてインポートすると1件のみ失敗して、 成功したデータを除いて再度その1件のみをインポートすると成功した」 いやいやそんなアホな。色々調べた結果、この結論に至りました。…

ランダム文字列を生成する関数

以前に同タイトルの記事を書きましたがこちらはPHP版。↓こちらはVBA版。まあこちらも基本ロジックは一緒なんですが…honey8823.hateblo.jp private function makeRandomStr($strlen = 1) { // 使用可能な文字一覧 $randomstr = "abcdefghijklmnopqrstuvwxyz12…

特定の文字以降を別の文字列に置き換える

具体的には、「メールアドレスの@以降を*でマスクする」ロジック。 文字列処理の関数を多数使用できて面白かったのでメモ。 ただ、PHPならもっと簡単なロジックが作れそうな気も…? // 加工前のメールアドレス $mail_address = "hoge@fuga.com"; // 加工後の…

文字列の集合をインデックスごとに分ける方法

「あいす」→あ行 「ほげ」→は行 …のような感じで、頭文字からインデックスの文字を求める方法のことですね。どうすればいいかはまあ分かりますけど、 もっと画期的な方法はないかなーと思いつつググってみたら、こんなQ&Aがありました。 oshiete.goo.ne.jp …

指定文字以降を削除する方法と速度検証

「hogehogefugafuga(piyo)」から 「(」以降を削除(=「(」より前を抜き出す)して 「hogehogefugafuga」にしたいというとき。 まあやり方の想像は付くが、自分が思いつくのより良い案もあるかもしれないのでとりあえずググる。参考:【PHP】指定文字列以降…

文字列のパディング

文字列をある桁数にするために、足りない分を任意の文字で埋める方法。 str_pad(値, 文字数, [埋める文字], [左右どちらを埋めるか]) 埋める文字を省略すると半角スペースが使用される。 また、どちらを埋めるかは、 STR_PAD_RIGHT:右側を埋める(=左寄せ…

すべての行の行頭&行末に特定の文字列を挿入

例えば秀丸のとあるタブに hoge fuga piyo というテキストがあったとします。これについて、 ・行頭に"["を追加 ・行末に"]"を追加 して [hoge] [fuga] [piyo] とする処理を行うマクロを作ったのでやっぱりバックアップも兼ねて公開。自分の場合、テキストで…

文字列置換

ある文字列を別の文字列に置換したい場合、 str_replace や preg_replace を使用する。とりあえずマニュアルは以下。参考:str_replace - php.net http://php.net/manual/ja/function.str-replace.php 参考:preg_replace - php.net http://php.net/manual/j…

ある複数の単語が文章中に含まれるかどうかを調べる方法

タイトルの通り、ある文章の中に特定の単語(複数)が含まれるかどうかを チェックする機能が欲しくていろいろ調べていました。 掲示板やブログコメントのNGワードチェックのような用途です。軽く調べても、自分でも思いつくような正攻法しか見つからず…参考:…