我正在尝试创建一个匹配任何这些文本的正则表达式(在 PHP 中):
#{text}
#{text1}{text2}
#{text1}{numbers}{text2}
#{text1}{text with spaces}{numbers}{text2}
所以。基本上第一个块只能容纳没有空格的文本,而其余的可以容纳任何东西。在那之后,得到匹配那些文本1...数字等。我一直在尝试一些正则表达式,但它没有成功。这是最后一个:
/#{(\w+)}({([\ a-zA-Z0-9*])})*/U
提前致谢!
编辑:就像@stema 建议的那样,我将我的正则表达式更改为这个:
/#\{(\w+)\}(\{([^}]*)\})*/
我避免使用 Ungreedy 标志,因为它根本没有帮助表达:)。但是,结果并没有我需要的那么多:
array(4) {
[0]=>
string(42) "#{text1}{text with spaces}{numbers}{text2}"
[1]=>
string(5) "text1"
[2]=>
string(7) "{text2}"
[3]=>
string(5) "text2"
}
似乎没有解析中间参数(这对我来说看起来很奇怪)。