我有一些特殊的字符作爲%1%2大段%3搜索C++設計模式和替換
我需要知道,如果有任何的設計模式,以取代那些有正確的價值觀,創造的最終段。例如: 以下是我的靜態段落。
%1是美麗的國家,%2是%1的首都,%1國家語言是%3。
我通過某些來源獲取%1,%2,%3的值。
我有一些特殊的字符作爲%1%2大段%3搜索C++設計模式和替換
我需要知道,如果有任何的設計模式,以取代那些有正確的價值觀,創造的最終段。例如: 以下是我的靜態段落。
%1是美麗的國家,%2是%1的首都,%1國家語言是%3。
我通過某些來源獲取%1,%2,%3的值。
你能給我們e strstr
或sscanf
可以找到指向半模式的字符串指針(兩者都是c std庫的一部分),但是如何替換,您需要擴展內存塊以適應替換(如果它們更大),看一下grep(對於unix),或者查看一些字符串搜索算法,如Boyer-Moore。
您還可以看看google template system或pegtl
這取決於你的編程語言。在C#(.NET),你可以使用:
var replaced = string.Format("{0} is a {1}", "klausbyskov", "donkey");
我不知道是否有這個設計模式,但它看起來像你想加入一些模板到你的應用。模板與jinja 2
例子:
>>> from jinja2 import Template
>>> template = Template('{{ country }} is a beautiful country!')
>>> template.render(country='India')
India is a beautiful country.
或者只是搜索和替換 ...
我沒有完全明白你的問題。但我想你可以看看MessageFormat如何在Java中工作。下面是一個例子 -
int fileCount = 1273;
String diskName = "MyDisk";
Object[] testArgs = {new Long(fileCount), diskName};
MessageFormat form = new MessageFormat(
"The disk \"{1}\" contains {0} file(s).");
System.out.println(form.format(testArgs));
如果這是C++,那麼你已經有幾條路字符串格式化
或只是提高字符串算法:http://www.boost.org/doc/libs/1_41_0/doc/html/string_algo/usage.html#id1701549 – 2010-01-25 19:19:37
@gf,是的。我真的需要儘快刷新我的提升。多年來沒有使用過它。 – Glen 2010-01-25 20:34:07
語言是C++ – Avinash 2010-01-25 17:33:16