PHP preg_match - 正则表达式

时间:2015-06-14 21:55:13

标签: php regex preg-match

我有这样的文字:

SU4R
C45G
G3HD
61U14XE7AR23 914K16W471LV V6SQ5V16LG91 24YL4HW956C3 UZ26J12K615V T741MH4N739W 31ST445G726H 621EH6VW7Q6M 55N629WJ945P 56TX2W6LC949 44DS765CF739 XC262HV1JZ6V 26YD4N1Y71F7 S4M3F1XeDC0D

我想使用preg_match在该文本中查找特定类型的代码,因此我应该包含:

  • 4或12个字符
  • 它应该回复所有元素
  • 不区分大小写
  • 字母和数字

我结束了这个:

preg_match("/^(?=.*\d)(?=.*[A-Za-z])[0-9A-Za-z!@#$%]{4,12}/", $input_line, $output_array);

可是:

1 个答案:

答案 0 :(得分:1)

使用preg_match_all(),这样的事情可能会起作用 http://www.phpliveregex.com/p/bz0

 # '/(?<!\S)(?i:[a-z\d]{4}|[a-z\d]{12})(?!\S)/'

 (?<! \S )                     # whitespace boundary
 (?i:                          # case insensitive cluster group
      [a-z\d]{4}                    # 4 alnum
   |                              # or
      [a-z\d]{12}                   # 12 alnum
 )
 (?! \S )                      # whitespace boundary