有没有一种简单的方法可以在 FreePascal/Lazarus 中进行 RegExp 替换?
四处打猎我可以看到我可以很容易地进行匹配,但我正在努力寻找功能来进行搜索和替换。
我想要达到的目标如下。
- 我有一个 XML 文件加载到 SynEdit 组件中。
- XML 文件在开头有一个声明
- DTD 保存在一个单独的文件中。
- 我不想将两者合并到一个文件中,但我确实想在编辑 XML 时对其进行验证。
- 我正在将 XML 读入一个字符串变量,并且我想在一个临时字符串变量中插入和 XML 内容之间的 DTD(以创建具有自包含 DTD 的兼容 XML),该变量可以被解析和验证。
所以基本上我有:
<?Line1?>
Line2
Line3
我想进行 RegExp 类型搜索并替换 '<?Line1?>' 替换为 '<?Line1?>\n<![DTD\nINFO WOULD\nGO HERE\n!]' 给我:
<?Line1?>
<![DTD
INFO WOULD
GO HERE
!]
Line2
Line3
例如在 PHP 中我会使用:
preg_replace('/(<\?.*\?>)/im','$1
<![DTD
INFO WOULD
GO HERE
!]',$sourcestring);
但是对于 FreePascal / Lazarus 似乎没有一组等效的正则表达式函数 - 只是一个简单/基本的正则表达式匹配函数。
或者有没有使用正则表达式的更简单的方法 - 我不想假设声明总是在第 1 行的正确位置 - 只是为了使事情复杂化。
谢谢,
调频