用括号PHP拆分字符串

时间:2015-07-22 14:38:27

标签: php regex

嘿伙计我有多个字符串在某种程度上相似, 一般来说,他们总是看起来像:

一些文字:/** * Update Marker ID */ public void updateMarkerId(MapsMarker marker, String id) { open(); ContentValues values = new ContentValues(); String markerId = marker.getId(); values.put(COLUMN_MARKER_STRING_ID, id); db.update(TABLE_LOCATION, values, COLUMN_MARKER_STRING_ID + "=" + markerId, null); close(); } 带有textinside的多个括号:A3/S3 07/08-03/13 (8P)

完整的例子是:

[V][S][3D][IRE][44]

我需要“解析”一些看起来像的数组或对象:

A3/S3 07/08-03/13 (8P) [V] [S] [3D] [IRE] [44]
or
A4 allroad/RS4 od 11/11 (8K) [V] [S] [3D] [IRE] [74]

我尝试用以下内容爆炸至少第一个文本:

array(
  [0] = "A3/S3 07/08-03/13 (8P)"
  [1] = "V" 
  [2] = "S"
  [3] = "3D"
  [4] = "IRE"
  [5] = "74"
)

不幸的是,这只是返回 $part = explode(") ", $name); echo $part[0]; 所以没有最后一个括号,即使没有[]中的那个值我也有点迷失,有可能有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

您可以使用此正则表达式:

$s = 'A3/S3 07/08-03/13 (8P) [V] [S] [3D] [IRE] [44]';
$arr = preg_split('/\h*[][]/', $s, -1, PREG_SPLIT_NO_EMPTY);

print_r( $arr );

<强>输出:

Array
(
    [0] => A3/S3 07/08-03/13 (8P)
    [1] => V
    [2] => S
    [3] => 3D
    [4] => IRE
    [5] => 44
)

正则表达式:\h*[][]使用\h*后跟[]

在0或更多水平空格上展开