我有一些数据,其中字段可能是文字值,或者是用花括号表示的表,类似于Lua语法:
a = 4
b = {
}
我需要一种方法来确定文本的第一个字段是否是一个表。要做到这一点,我需要确定是否有一些{
,它前面正好有一个=
,没有更多。第二个=
表示我们已经传递了一个不是表的字段。
负的后向看起来仍然匹配,除非=
在匹配之前。这是捕获B的花括号:
={1}\s+{
编辑:关于假定的重复Regex matching exactly 1 of a specific character(s)
这个问题是问如何使正则表达式匹配'@something'而不是'@@ something',即只允许一个前“@”。我的问题是关于在前面的字符串中找到一个'=' ANYWHERE,不一定在匹配之前。因此:= blahblahsomething {
将匹配"“,但== blahblahsomething {
将给予不匹配。
1条答案
按热度按时间qpgpyjmq1#
将前面的字符限制为一个
=
:请参见live demo。
{
在否定字符类中,以确保它是 * 第一个 *{
,前面正好有一个=
。添加行结束字符以确保匹配项都在一行上。