替换是搜索字符串以查找子字符串并将其替换为其他字符串的操作。
我正在尝试编写一个 Perl 脚本来从包含 Joomla 网站文章的 mariadb 数据库中删除字符串。我们的人工智能工具正在数据库中插入需要删除的额外垃圾。
我在数据库(postgres 9.2.1)中有一个文本字段,其中有一个json blob。它看起来与此类似,除了所有内容都在一行上,显然: { “关键字”:{ “已检查”:“1”, “拉贝……
我正在尝试将所有出现的= 替换为#。 = 洛雷姆 == 伊普苏姆 ==== 富=酒吧 通常我会做这样的事情。 :%s/^====/####/g :%s/^==/###/g :%s/^==/##/g :%s/^=/#/g 不太好...
Linux:sed 替换 string1,但只能使用 grep string2
我应该替换文件中的某个字符串,但仅限于出现另一个字符串的行,例如: 这是我的文件 你好世界 世界是我的 我只会在 w...
我从编辑器收到了一个字符串,其中包含 HTML 标签,如下所示: const htmlString = "帐户 {{帐户}} 我从编辑器收到一个字符串,其中包含 HTML 标签,如下所示: const htmlString = "<div>Account <span contenteditable="false">{{account}}</span></div>. <div>Hello <span contenteditable="false">{{hello}}</span></div>" 在此内容中,有两个格式为 {{account}} 和 {{hello}} 的变量。 在我的数据库中,我以格式存储变量数据 { key: string, value: string, isDefault: boolean }: [ { "key" : "account", "value" : "", "isDefault" : true, }, { "key" : "hello", "value" : "Hello everyone", "isDefault" : false } ] 首先,我使用一个函数来删除 HTML 标签: const blockTags = /<(div|h1|h2|h3|h4|h5|h6|p|ul|ol|li|br)[^>]*>/gi; const inlineTags = /<\/?(span|a|strong|em|b|i|u)[^>]*>/gi; let content = htmlString.replace(blockTags, '\n').replace(/<\/(div|h1|h2|h3|h4|h5|h6|p)>/gi, '\n'); content = content.replace(inlineTags, ''); content = content.replace(/<[^>]+>/g, ''); content = content.replace(/\n\s*\n/g, '\n').trim(); 然后,我提取变量: const variables = (content.match(/\{\{(.*?)\}\}/gi) || []).map((item) => item.replace(/\{\{|\}\}/g, '')); 最后,我使用一个函数将所有变量替换为数据库中相应的值,如果变量是默认值(isDefault = true),我将根据系统规则根据配置替换为动态值: const objVariables = variables.reduce((acc, { key, value, isDefault }) => { acc[key] = { value, isDefault }; return acc; }, {}); const result = content.replace(/\{\{(.*?)\}\}/g, (match, variable) => { const variableData = objVariables[variable]; if (variableData && variableData.isDefault) { if (variable === "account") { return "ACCOUNT_NAME"; } } return variableData ? variableData.value : match; }); 我想用数据库中存储的值替换 HTML 字符串中的所有变量,但我认为我的代码不是最好的解决方案,而且可能很慢。我正在寻找优化的解决方案或任何建议。 我认为你应该迭代你的变量并替换它们(如果在字符串中找到它们)...不需要剥离标签。 const myVariables = [ { "key" : "account", "value" : "", "isDefault" : true }, { "key" : "hello", "value" : "Hello everyone", "isDefault" : false }, ]; let myString = myContent.innerHTML; myVariables.forEach ( ( { key, value, isDefault } ) => myString = myString.replaceAll ( `{{${key}}}`, ( ( isDefault && ( key === 'account' ) ) ? 'ACCOUNT_NAME' : value ?? key ) ) ); myContent.innerHTML = myString; <div id="myContent"> <div>Account <span contenteditable="false">{{account}}</span>.</div> <div>Hello <span contenteditable="false">{{hello}}</span></div> </div> 请注意,在上面的示例中,甚至没有触及 html。 const htmlString = `<div>Account <span contenteditable="false">{{account}}</span></div>. <div>Hello <span contenteditable="false">{{hello}}</span></div>`; const databaseVariables = [ { key: "account", value: "", isDefault: true }, { key: "hello", value: "Hello everyone", isDefault: false }, ]; // Step 1: Convert database array into a Map for faster lookups const variableMap = new Map(databaseVariables.map(item => [item.key, item])); // Step 2: Function to strip HTML tags while keeping content structure function stripHtml(html) { // Replace block tags with newline and inline tags with nothing return html .replace(/<(div|h[1-6]|p|br)[^>]*>/gi, '\n') // Block-level elements .replace(/<\/(div|h[1-6]|p)>/gi, '\n') // Block-level end tags .replace(/<\/?(span|a|strong|em|b|i|u)[^>]*>/gi, '') // Inline tags .replace(/\n\s*\n/g, '\n') // Remove excess newlines .replace(/<[^>]+>/g, '') // Remove remaining tags .trim(); } // Step 3: Function to replace variables in content function replaceVariables(content) { return content.replace(/\{\{(.*?)\}\}/g, (match, variable) => { const variableData = variableMap.get(variable); if (variableData) { if (variableData.isDefault && variable === "account") { return "ACCOUNT_NAME"; } return variableData.value || match; } return match; }); } const strippedContent = stripHtml(htmlString); const finalResult = replaceVariables(strippedContent); console.log(finalResult);
将变量替换为包含 HTML 的 JavaScript 字符串中数据库中的值
我从编辑器收到了一个字符串,其中包含 HTML 标签,如下所示: const htmlString = "帐户 {{帐户}} 我从编辑器收到一个字符串,其中包含 HTML 标签,如下所示: const htmlString = "<div>Account <span contenteditable="false">{{account}}</span></div>. <div>Hello <span contenteditable="false">{{hello}}</span></div>" 在此内容中,有两个格式为 {{account}} 和 {{hello}} 的变量。 在我的数据库中,我以格式存储变量数据 { key: string, value: string, isDefault: boolean }: [ { "key" : "account", "value" : "", "isDefault" : true, }, { "key" : "hello", "value" : "Hello everyone", "isDefault" : false } ] 首先,我使用一个函数来删除 HTML 标签: const blockTags = /<(div|h1|h2|h3|h4|h5|h6|p|ul|ol|li|br)[^>]*>/gi; const inlineTags = /<\/?(span|a|strong|em|b|i|u)[^>]*>/gi; let content = htmlString.replace(blockTags, '\n').replace(/<\/(div|h1|h2|h3|h4|h5|h6|p)>/gi, '\n'); content = content.replace(inlineTags, ''); content = content.replace(/<[^>]+>/g, ''); content = content.replace(/\n\s*\n/g, '\n').trim(); 然后,我提取变量: const variables = (content.match(/\{\{(.*?)\}\}/gi) || []).map((item) => item.replace(/\{\{|\}\}/g, '')); 最后,我使用一个函数将所有变量替换为数据库中的相应值,如果变量是默认值(isDefault = true),我将根据系统规则根据配置替换为动态值: const objVariables = variables.reduce((acc, { key, value, isDefault }) => { acc[key] = { value, isDefault }; return acc; }, {}); const result = content.replace(/\{\{(.*?)\}\}/g, (match, variable) => { const variableData = objVariables[variable]; if (variableData && variableData.isDefault) { if (variable === "account") { return "ACCOUNT_NAME"; } } return variableData ? variableData.value : match; }); 我想用数据库中存储的值替换 HTML 字符串中的所有变量,但我认为我的代码不是最好的解决方案,而且可能很慢。我正在寻找优化的解决方案或任何建议。 我认为你应该迭代你的变量并替换它们(如果在字符串中找到它们)...不需要删除标签。 const myVariables = [ { "key" : "account", "value" : "", "isDefault" : true }, { "key" : "hello", "value" : "Hello everyone", "isDefault" : false }, ]; let myString = myContent.innerHTML; myVariables.forEach ( variableData => { const { key, value, isDefault } = variableData; myString = myString.replace ( `{{${key}}}`, ( ( isDefault && ( key === 'account' ) ) ? 'ACCOUNT_NAME' : value ?? key ) ); } ); myContent.innerHTML = myString; <div id="myContent"> <div>Account <span contenteditable="false">{{account}}</span>.</div> <div>Hello <span contenteditable="false">{{hello}}</span></div> </div> 请注意,在上面的示例中,甚至没有触及 html。
我有一个数据集,我想用递增值替换每个零:第一个零变为 0.001,第二个 0.002,第三个 0.003,依此类推。每次出现零时,它都会增加......
我试图将 df 中的所有列替换为整数的价格,但是由于某种原因,replace() 方法不起作用: df = pd.read_csv(f_name, dtype="string") df = df[df.columns.dro...
如何在 livewire 或 laravel 中更新 Push_array 数据中的数据,请参阅下面的数组数据。 [ [“id”=> 0,“input_Data”=>“每月最多 15 组”], [“id...
我有两个数组。 $arr1 = 数组( '姓名', '日期' => 数组('默认' => '2009-06-13', '格式' => '短'), '地址', '邮政编码' => 数组('默认' => 12345, '隐藏' ...
我的网站遭到暴力攻击。日志文件大小为 1.4 GB(4338.995 行)。如何删除 Sublime 中不包含特定字符串的行? 它包含普通用户和...
我需要删除“总收费”列中的千位逗号分隔符 (,)。目前我正在使用 line = line.replace(',', '');但随后它将删除所有逗号。 任何建议我们如何删除...
如果我使用 :vimgrep,它会搜索当前目录下的所有文件。但我的要求是在所有打开的文件中搜索/替换。 例如。我使用vim同时打开3个文件 vim 1.cpp 2.cpp...
这是我的功能: $words =explode('.', $desc); $输出=''; foreach ($words as $key => $value) { $out .= $值; $兰特 = 兰特(0, 4); 如果 ($rand == 2) { $输出.=“ &quo...
我正在尝试删除 URL 的最后一个目录部分。我的网址如下所示: https://my_ip_address:port/site.php?path=/path/to/my/folder。 单击按钮时,我想将其更改为 ...
我有一组想要匿名的哈希值。使用 GNU sed (v4.9),如何仅用其他内容替换部分散列?特别是对于我的情况,我想保留 $ 符号,如果它......
我需要将字符串中的每个换行符替换为另一个字符(例如“X”)。我不希望用一个换行符折叠多个换行符! PS:此正则表达式替换所有连续的
问题陈述: 我想仅在找到时替换文本字符串中的多个值,所有这些都一步完成。 示例:在我的 8000 行列中, 我想在文本字符串中用 *40 替换 @ 符号...
我想将 ) 字符(右括号)添加到所有行的末尾。 我看到 CR 是每行的结束符号。 (菜单 > 视图 > 显示符号 > 显示行尾) 我尝试更换 和 ) 在
`子 REPCHAR() Dim Massive(2)、DATA 作为变体、RES 作为变体、LC 作为字符串、I 为长、N 为长 Dim Dic:设置 Dic = CreateObject("Scripting.Dictionary") 带床单(&qu...