如何在python中使用正则表达式

时间:2018-03-29 02:42:53

标签: regex string python-3.x

我正在编写一个程序来查找和替换具有给定扩展名的所有文件中的字符串。
这里我使用正则表达式进行搜索。任务是查找出现并修改它们。
< / p>

  

如果我的字符串是&#34;该号码是1234567890&#34;
  搜索和替换后的结果应为+911234567890

我想我可以像这里一样re.sub()

s = "The number is 1234567890"
re.sub(r"\d{10}",??,s)

在这里可以给出的第二个参数我不知道这个数字是什么我修改了相同的匹配字符串前面加上+91
我可以使用reall中的findall和

之类的字符串替换它
s = "The number is 1234567890 and 2345678901"
matches = re.findall(r'\d{10}',s)
for match in matches:
    s = s.replace(match,"+91"+match)
  

在此之后是数字是+911234567890和+912345678901

这是唯一的方法吗?是不是可以使用re.sub()? 如果是请帮助我。谢谢......!

1 个答案:

答案 0 :(得分:0)

试试这个正则表达式:

(?=\d{10})

<强> Click for Demo

<强>解释

  • (?=\d{10}) - 找到零长度匹配的正面预测,紧接着是10位数

<强>代码

import re
regex = r"(?=\d{10})"
test_str = "The number is 1234567890"
subst = "+91"
result = re.sub(regex, subst, test_str, 0)
if result:
    print (result)

Code Output

如果我使用 your regex ,代码将如下所示:

import re
regex = r"(\d{10})"
test_str = "The number is 1234567890"
subst = "+91$1"
result = re.sub(regex, subst, test_str, 0)
if result:
    print (result)