正则表达式匹配数值变量名称
Regex matching numerical variable names
假设我们有以下字符串:
You have received the grade of in the subject () in the semester ().
Grade date:
Entered:
我需要弄清楚如何动态且正确地替换这些变量。假设我们有以下 PL/SQL
伪代码:
for i in 1..X loop
l_str := regexp_replace(l_str, '$'||to_char(i), l_replace(i));
end loop;
但是在第一次迭代时 - </code>、<code>
、</code> 变量正在被替换 - 但只有 <code>
是正确的。
有没有人有解决方法的建议?
您的正则表达式匹配任何以 $ 和当前迭代编号开头的内容。
如果你需要用相同的字符串替换所有这些变量,你不需要循环,因为你可以简单地这样做:
l_str := regexp_replace(l_str, '$[0-9]+','SOME_STRING');
如果你需要有不同的不同替换,你可以类似地做:
for i in 1..X loop
l_str := regexp_replace(l_str, '($'||to_char(i)||')([^0-9]+|$)',l_replace(i)||'');
end loop;
假设我们有以下字符串:
You have received the grade of in the subject () in the semester ().
Grade date:
Entered:
我需要弄清楚如何动态且正确地替换这些变量。假设我们有以下 PL/SQL
伪代码:
for i in 1..X loop
l_str := regexp_replace(l_str, '$'||to_char(i), l_replace(i));
end loop;
但是在第一次迭代时 - </code>、<code>
、</code> 变量正在被替换 - 但只有 <code>
是正确的。
有没有人有解决方法的建议?
您的正则表达式匹配任何以 $ 和当前迭代编号开头的内容。 如果你需要用相同的字符串替换所有这些变量,你不需要循环,因为你可以简单地这样做:
l_str := regexp_replace(l_str, '$[0-9]+','SOME_STRING');
如果你需要有不同的不同替换,你可以类似地做:
for i in 1..X loop
l_str := regexp_replace(l_str, '($'||to_char(i)||')([^0-9]+|$)',l_replace(i)||'');
end loop;