說我有一個字符串Python的轉換字符串使用正則表達式乳膠
string = "{1/100}"
我想用正則表達式在Python把它轉換成
new_string = "\frac{1}{100}"
我想我會需要用到的東西這樣
new_string = re.sub(r'{.+/.+}', r'', string)
但是我卡上什麼,我會整理保存字符分數,在本例中爲1和100.
說我有一個字符串Python的轉換字符串使用正則表達式乳膠
string = "{1/100}"
我想用正則表達式在Python把它轉換成
new_string = "\frac{1}{100}"
我想我會需要用到的東西這樣
new_string = re.sub(r'{.+/.+}', r'', string)
但是我卡上什麼,我會整理保存字符分數,在本例中爲1和100.
您可以使用()
來捕獲數字。然後使用\1
和\2
指他們:
new_string = re.sub(r'{(.+)/(.+)}', r'\\frac{\1}{\2}', string)
# \frac{1}{100}
注:不要忘了轉義反斜線\\
。
使用parens捕獲數字,然後使用\1
和\2
在替換文本中引用它們。例如:
>>> print re.sub(r'{(.+)/(.+)}', r'\\frac{\1}{\2}', "{1/100}")
\frac{1}{100}
大括號內的任何內容都是數字/
的數字。所以在正則表達式的地方編號([0-9]
)而不是.
(點)。
>>> import re
>>> string = "{1/100}"
>>> new = re.sub(r'{([0-9]+)/([0-9]+)}', r'\\frac{\1}{\2}', string)
>>> print new
\frac{1}{100}
使用re.match
。它更靈活:
>>> m = re.match(r'{(.+)/(.+)}', string)
>>> m.groups()
('1', '100')
>>> new_string = "\\frac{%s}{%s}"%m.groups()
>>> print new_string
\frac{1}{100}
沒有理由將參數限制爲數字。 '\ frac'不關心這兩個參數是什麼;它只是排版它們,在[vincumulm](http://en.wikipedia.org/wiki/Vinculum_(symbol))之上和之下。 – chepner