[解決済み】正規表現でスペースにマッチングさせる
2022-03-29 22:37:37
質問
PHPの正規表現でスペース文字にマッチさせるにはどうしたらいいですか?
つまり、"gavin schulz"のように、2つの単語の間にスペースがある場合です。私は、文字と数字とスペースだけを許可するように正規表現を使用しています。しかし、スペースをどのように見つけるのかがよくわかりません。今、私が持っているのはこれです。
$newtag = preg_replace("/[^a-zA-Z0-9s|]/", "", $tag);
解決方法は?
スペースなら、それは
" "
(スペース1つ分)。
1つ以上の場合、それは
" *"
(それは
に
スペースとアスタリスク)または
" +"
(スペース1個とプラス1個)。
一般的なスペーシングであれば
"[ X]"
または
"[ X][ X]*"
または
"[ X]+"
ここで
X
は物理的なタブ文字です(これらの例では、それぞれの前に空白が1つずつあります)。
これらは
あらゆる
* 私がこれまでに見たことのある正規表現エンジン(中には、1つ以上の
"+"
という文字が表示されます。)
最新の正規表現エンジンを使うことが分かっている場合。
"\s"
とそのバリエーションがおすすめです。また、単語境界は行頭と行末を一致させるので、前後の空白がない単語を探すときに重要だと思います。
特にPHPの場合。 このページ が役立つかもしれません。
あなたの編集を見ると、有効でない文字をすべて削除したいようです。 その始まりは次のとおりです(正規表現内のスペースに注意してください)。
$newtag = preg_replace ("/[^a-zA-Z0-9 ]/", "", $tag);
# ^ space here
各単語の間にスペースを1つだけ入れ、最初と最後には何も入れないようにするトリックも必要な場合は、もう少し複雑になりますが(おそらく別の質問)、基本的な考え方は次のようになります。
$newtag = preg_replace ("/ +/", " ", $tag); # convert all multispaces to space
$newtag = preg_replace ("/^ /", "", $tag); # remove space from start
$newtag = preg_replace ("/ $/", "", $tag); # and end
関連
-
[解決済み】XAMPPエラー: www.example.com:443:0 サーバー証明書に、サーバー名と一致するIDが含まれていません。
-
[解決済み] XHTMLの自己完結型タグを除くオープンタグにマッチするRegEx
-
[解決済み] grepによるネガティブマッチング(fooを含まない行にマッチする)
-
[解決済み] 正規表現で「この文字列までなら何でもあり」にマッチさせるには?
-
[解決済み] 貪欲 vs. 渋い vs. 所有格の修飾語
-
[解決済み】PHPの'foreach'は実際どのように動作するのですか?
-
[解決済み】PHPパスワードのハッシュとソルトの安全性について
-
[解決済み】単語間のスペースを許容する正規表現
-
[解決済み] リファレンス - このシンボルはPHPで何を意味するのですか?
-
[解決済み] PHPを使用して2つの日付の差を計算する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】phpのob_start()の使い道は?
-
[解決済み] 整形されていない数値が発生しました。
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】stdClassクラスのオブジェクトが文字列に変換されない。
-
[解決済み】Phpのincludeが機能しない? 関数がincludeされない
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】子テーマのCSSが親テーマをオーバーライドしない
-
[解決済み] mysqli_fetch_assoc() は、パラメータ 1 が mysqli_result であることを期待し、boolean が与えられる [重複] 。