匹配以特定字符串开头并以特定字符串结尾的字符串的内容
Regex to match contents of a string preceded by particular string and ended with a particular string
我如何使一个正则表达式,将提取第一个方括号的内容在以下?
Block[first_name][value]
返回字符串first_name
。
Block[last_name][value]
返回字符串last_name
。
我试过了:
这是我当前的正则表达式:http://regex101.com/r/jW0hY1/1
/(?:Block'[).*(?:'[value])/
我想首先我会有一个非捕获匹配Block[
。然后我会捕获所有的内容,直到][value]
开始。相反,这似乎返回整个字符串。
从索引1中获取匹配的组
(?:Block'[)([^']]*)(?:']'[value'])
演示或者在你的正则表达式
中做一些改变(?:Block'[)(.*)(?:']'[value])
演示正则表达式:(DEMO)
(?:Block'[)(.*)(?:']'[value])
获取内容:
string = "Block[first_name][value]";
result = string.match((/?:Block'[)(.*)(?:']'[value])/, g);
console.log(result[1]); //first_name
问题是.*
吞噬了尽可能多的字符。使用非贪婪量词代替,并使用捕获组:
Block'[(.*?)']
如果你也需要捕获值,你可以使用这个表达式:
Block'[(.*?)']'[(.*?)']
编辑:和JS…
var re = /Block'[(.*?)']'[(.*?)']/g;
var match;
while(match = re.exec("Block[first_name][value] Block[last_name][value]")) {
console.log("Found " + match[1] + " with value: " + match[2]);
}
相关文章:
- 创建属性值数组,其中属性名称以特定字符串结尾
- 如何删除字符串开头和结尾的换行符
- 用于删除字符串中字符开头到结尾的正则表达式
- 从结尾或开头修剪字符串
- 正则表达式能否匹配字符串开头或结尾的字符(但不能同时匹配)
- 将一个字母结尾到特定字符串的末尾
- 如何从以某个单词(regexp)结尾的字符串中获取id
- javascript正则表达式浮点数,以字符串结尾
- 在字符串的开头和结尾搜索相同的数字
- 如何编写RegExpression For在javascript中不允许在字符串中使用前导和结尾空格
- 正则表达式 - 字符串不能以空格开头,以空格结尾,并且连续包含几个空格
- 在字符串的开头和结尾添加一个字符
- JavaScript WebSocket 非以 null 结尾的字符串
- 将特定字符串的结尾从模式的末端剥离
- 如何选择以字符串开头但没有't在jQuery中以不同的字符串结尾
- 匹配以特定字符串开头并以特定字符串结尾的字符串的内容
- JavaScript RegEx字符串结尾不起作用
- 字符串的正则表达式,这些字符串不以指定的子字符串结尾
- 正则表达式查找字符串结尾
- 正则表达式匹配不以特定字符串结尾的组