我有一个字符串数组。
(102) Name3
如何匹配以 (####) 开头的字符串并轻松获取行的名称部分。我正在尝试以下不起作用。
if(preg_match("/(d+)/", $myArray[$i], $matches))
我有一个字符串数组。
(102) Name3
如何匹配以 (####) 开头的字符串并轻松获取行的名称部分。我正在尝试以下不起作用。
if(preg_match("/(d+)/", $myArray[$i], $matches))
您需要转义预期输入字符串中的括号:
if(preg_match("/\((\d+)\) (.+)$/", $myArray[$i], $matches))
那就是下面的正则表达式:
/
正则表达式的开头(可以是任何字符,但通常是 /)\(
性格 ((
开始捕获第 1 组\d
任何数字+
上一场比赛,1次或多次)
结束捕获组 1
空间(
开始捕获第 2 组.
几乎任何角色+
上一场比赛,1次或多次)
结束捕获组 2$
字符串结尾/
正则表达式结束(必须匹配第一个字符)您可以在regular-expressions.info上找到更多描述性定义。
有了上述内容,匹配项将包含例如:
array(
'(123) input string',
123, // capturing group 1
'input string' // capturing group 2
)