teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

文字クラスをまとめる

2016/10/04 07:12

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -13,5 +13,5 @@
13
13
 
14
14
  ```php
15
15
  $escaped = preg_quote('!#$%()*+-./:;=?@[]^_`{|}', '/');
16
- $pattern = "/[{$escaped}]|[0-9]/";
16
+ $pattern = "/[{$escaped}0-9]/";
17
17
  ```

2

数字が含まれていなかったので編集

2016/10/04 07:12

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -9,8 +9,9 @@
9
9
  ---
10
10
 
11
11
  また,自前でエスケープすると可読性が落ちるので,こういうやり方でも良いと思います.
12
+ (「最低1文字含まれるかどうか」のみを調べたい場合には`+`を付けなくていいです)
12
13
 
13
14
  ```php
14
15
  $escaped = preg_quote('!#$%()*+-./:;=?@[]^_`{|}', '/');
15
- $pattern = "/[{$escaped}]/";
16
+ $pattern = "/[{$escaped}]|[0-9]/";
16
17
  ```

1

追記

2016/10/04 07:11

投稿

mpyw
mpyw

スコア5223

answer CHANGED
@@ -4,4 +4,13 @@
4
4
 
5
5
  念のため3v4lでの検証も置いておきます…
6
6
 
7
- [https://3v4l.org/cs6hr](https://3v4l.org/cs6hr)
7
+ [https://3v4l.org/cs6hr](https://3v4l.org/cs6hr)
8
+
9
+ ---
10
+
11
+ また,自前でエスケープすると可読性が落ちるので,こういうやり方でも良いと思います.
12
+
13
+ ```php
14
+ $escaped = preg_quote('!#$%()*+-./:;=?@[]^_`{|}', '/');
15
+ $pattern = "/[{$escaped}]/";
16
+ ```