正则表达式(php)只提取数字或仅提取方括号内的字母(括号除外)

时间:2016-03-12 22:39:21

标签: regex

我有这个正则表达式提取braquets内的任何东西: [^[\]]+(?=])

1)如果只包含字母(a-z),我想在括号内提取整个内容

2)如果仅包含数字(0-9),我想在括号内提取内容

所以,我需要2个正则表达式。

2 个答案:

答案 0 :(得分:5)

试试这个

(?<=\[)[a-zA-Z]+(?=\])

Demo

(?<=\[)[0-9]+(?=\])

Demo

答案 1 :(得分:3)

您可以在JavaScript中执行此操作以获得相同的结果。

var str = "Lorem [123] ipsum [dolor] sit [123dolor] amet.";
var re = new RegExp(/(?:\[)(\d+|[a-zA-Z]+)(?=\])/g);
var result = [];
var myArray;
while ((myArray = re.exec(str)) !== null) {
  result.push(myArray[1]);
}
console.log(result); // ["123", "dolor"]