数字的python搜索字符串,在它们周围放置括号

时间:2012-09-07 10:15:50

标签: python regex insert numbers

我正在尝试在字符串中搜索数字,并在找到它们时,在它们周围包裹一些字符,例如。

a = "hello, i am 8 years old and have 12 toys"
a = method(a)
print a
"hello, i am \ref{8} years old and have \ref{12} toys"

我看过re(正则表达式)库,但似乎找不到任何有用的东西......任何很酷的想法?

2 个答案:

答案 0 :(得分:5)

这是.sub方法的基本用法:

numbers = re.compile(r'(\d+)')

a = numbers.sub(r'\ref{\1}', a)

\d+数字模式周围的画面会创建一个组,\1引用会替换为该组的内容。

>>> import re
>>> a = "hello, i am 8 years old and have 12 toys"
>>> numbers = re.compile(r'(\d+)')
>>> a = numbers.sub(r'\\ref{\1}', a)
>>> print a
hello, i am \ref{8} years old and have \ref{12} toys

答案 1 :(得分:0)

你需要沿着以下几行使用re.sub函数:

re.sub("(\d+)",my_sub_func,text)#抓住这里的数字(虽然这只捕获非实数) 其中my_sub_func的定义如下:

def my_sub_func(match_obj):

    text = match_obj.group(0) # get the digit text here
    new_text = "\\ref{"+text+"}" # change the pattern here
    return new_text`