要將markdown斜體文本$script轉換為html,我寫了這個:
my $script = "*so what*";
my $res =~ s/\*(.)\*/$1/g;
print "<em>$1</em>\n";
預期結果是:
<em>so what</em>
但它給出了:
<em></em>
如何讓它給出預期的結果?
uj5u.com熱心網友回復:
問題:
- 您列印了錯誤的變數。
- 您在中途切換變數名稱。
.不會匹配多個字符。- 即使沒有找到星星,您也總是添加一個 EM 元素。
- 即使找到多對星,您也總是添加一個 EM 元素。
- 您在整個輸出周圍添加 EM 元素,而不僅僅是星中的部分。
使固定:
$script =~ s{\*([^*] )\*}{<em>$1</em>}g;
print "$script\n";
或者
my $res = $script =~ s{\*([^*] )\*}{<em>$1</em>}gr;
print "$res\n";
但事實并非如此。即使解決了所有上述問題,您的決議器仍然存在許多其他錯誤。例如,它錯誤地將斜體應用于以下所有內容:
**Important**
正確:重要
您的代碼:*重要*4 * 5 * 6 = 120
正確:4 * 5 * 6 = 120
您的代碼:4 5 6 = 1204 * 6 = 20 is *wrong*
正確:4 * 6 = 20錯誤
您的代碼:4 6 = 20錯誤*`foo *bar* baz`
正確:foo *bar* baz
您的代碼:`foo bar baz`\*I like stars\*
正確:*我喜歡星星*
您的代碼:\我喜歡星星\
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425538.html
上一篇:如何將條件和回圈放在同一行?
