執行替換操作時,我需要在反向引用中添加一个數字。
例如.我正在重寫URL
www.site.com/doc.asp?doc=321&language=1
到
www.site.com/headline/100321.article
例如 做一个簡單的替換,但我需要在文件ID中添加100,000.到目前為止,我下面的內容在不添加任何內容的情况下仍然有效。
s/.*doc=(\d+).*/www.site.com\/headline\/$1.article/g;
但是如何將100,000加到$ 1?
請註意,您不能仅在數字前添加'100',因為文件ID可能是>999。
最新回復
- 5月前1 #
- 5月前2 #
在正則表達式中是不可能的.正則表達式仅匹配模式,不執行算術運算。
您能做的最好的事情就是像這樣:
match replace (\d{6,}) $1 (\d{5}) 1$1 (\d{4}) 10$1 (\d{3}) 100$1 (\d{2}) 1000$1 (\d) 10000$1
- 5月前3 #
如果您只有几篇文章,就可以蛮力地
...doc=322 -> www.site.com/headline/100322.article ...doc=323 -> www.site.com/headline/100323.article ...doc=324 -> www.site.com/headline/100324.article ...etc
使用正則表達式的數學運算,您首先在這裏看到它。
使用Perl:
就像使用e標志一樣,右邊的部分現在成為表達式.因此必须將非捕获部分包裝為字元串。