我正在尝试从vb.net中查找和替换PHP文件中的PHP变量。我在一个循环中成功地做到了这一点:
"\B\$foo\b"
"\B\$boo\b"
.....
现在我想在阅读Smarty样式文件时排除替换。
Smarty变量就像PHP变量,但在{和}字符内。
例如希望在本文中找到并替换$ foo,但不要触及{$ boo}:
这只是$ foo的一个例子而不是{$ boo}!
需要知道在vb.net中正常的正则表达式
答案 0 :(得分:0)
使用具有环视功能的正则表达式:
(?<!\{)\B\$foo\b(?!\})
外观教程:http://www.regular-expressions.info/lookaround.html
编辑:我很想使用平衡组,但我不会简单,所以根据你的评论,这是我的解决方案:(?<=(?:^|\})[^{]*)\B\$foo\b(?=[^}]*(?:$|\{))
答案 1 :(得分:0)
对您的正则表达式进行一些小改动,以确保{和}不匹配通过负面的lookbehind和lookahead:
(?<!\{)\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?!\})
(?!\})表示在此之前不匹配}。
(?&lt;!\ {)表示不匹配{此后面。