Is it possible to make a regular expression to match everything within single brackets but ignore double brackets, so for example in:
{foo} {bar} {{baz}}
To only match foo and bar without the surrounding braces, you can use
(?<=(?
if your language supports lookbehind assertions.
Explanation:
(?<= # Assert that the following can be matched before the current position
(?
EDIT: In JavaScript, you don't have lookbehind. In this case you need to use something like this:
var myregexp = /(?:^|[^{])\{([^{}]*)(?=\}(?!\}))/g;
var match = myregexp.exec(subject);
while (match != null) {
for (var i = 0; i < match.length; i++) {
// matched text: match[1]
}
match = myregexp.exec(subject);
}