想象一下,我有一个多行字符串,其中包含格式为{{ string_a }}
的标记,并且可以放在可能的前导空格的自己的行上,或者放在与其他标记相同的行上。
a: {{ string_a }}
b:
{{ string_b }}
我正在尝试编写一个与这些令牌的内容匹配的正则表达式并进行替换,但我还想根据它们是否存在于自己的行中来运行一些条件逻辑。
我的原始正则表达式非常基本:\{\{\s*([A-Za-z_]+)\s*\}\}
并且它可以很好地匹配令牌。但是,当我尝试匹配前导空格并将其放入捕获组时,它只匹配具有空格的那些,当我真正想要所有令牌时:
(^\s*)\{\{\s*([A-Za-z_]+)\s*\}\}
我认为解决方案是使用某种前瞻/后视,但无论我尝试什么,它似乎都会破坏。不确定这是否是因为第一组中的^
或*
,但它不喜欢它。
所以,我想要获取的是我的捕获列表如下:
{{ string_a }}
string_a
\s\s\s
,在