在 python 中使用正则表达式中的 lookbehind 提取字符串直到 '\n' 字符。它可以有字母数字字符、特殊字符和 space 也
extract strings till ' \n ' character using lookbehnd in regex in python. And it can have alphanumeric characters, special characters and space also
text = '我的叔叔住院了。\n 他已经患有 10 个月了。\n 医院的地址是\nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033。'
现在我想提取医院的地址,即“Apollo Health City Campus, Jubilee Hills, Hyderabad -**”使用正则表达式后视,我使用了以下代码但是我想要一个可以帮助我提取字符串的表达式,直到六位密码之前的 \n 字符,即“500 033”
目前正在尝试提取 6 个字符串,但我想要一个可以帮助我获取所有字符串的正则表达式,直到 '\n' .
r'((\w\S+\s+){1,6})(?=500 033)'
预期输出 - ' Apollo Health City Campus, Jubilee Hills, Hyderabad - ' 即 \n
之前的所有字符串
为什么不简单地使用 \n
拆分并获取最后一个字符串?
text = ' My uncle is admitted in the hospital.\n He has been suffering from 10 months.\n The address of the hospital is \nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033. '
print(text.split('\n')[-1])
如果您确定该字符串将包含密码。即 6 位数字,另一种方法可以是:
text = ' My uncle is admitted in the hospital.\n He has been suffering from 10 months.\n The address of the hospital is \nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033. '
for x in text.split('\n'):
if [idx.isdigit() for idx in x].count(True)==6:
print(x)
我只在字符串中添加了 6 位数字的支票。可以根据自己的需要修改。
text = '我的叔叔住院了。\n 他已经患有 10 个月了。\n 医院的地址是\nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033。'
现在我想提取医院的地址,即“Apollo Health City Campus, Jubilee Hills, Hyderabad -**”使用正则表达式后视,我使用了以下代码但是我想要一个可以帮助我提取字符串的表达式,直到六位密码之前的 \n 字符,即“500 033” 目前正在尝试提取 6 个字符串,但我想要一个可以帮助我获取所有字符串的正则表达式,直到 '\n' .
r'((\w\S+\s+){1,6})(?=500 033)'
预期输出 - ' Apollo Health City Campus, Jubilee Hills, Hyderabad - ' 即 \n
之前的所有字符串为什么不简单地使用 \n
拆分并获取最后一个字符串?
text = ' My uncle is admitted in the hospital.\n He has been suffering from 10 months.\n The address of the hospital is \nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033. '
print(text.split('\n')[-1])
如果您确定该字符串将包含密码。即 6 位数字,另一种方法可以是:
text = ' My uncle is admitted in the hospital.\n He has been suffering from 10 months.\n The address of the hospital is \nApollo Health City Campus, Jubilee Hills, Hyderabad - 500 033. '
for x in text.split('\n'):
if [idx.isdigit() for idx in x].count(True)==6:
print(x)
我只在字符串中添加了 6 位数字的支票。可以根据自己的需要修改。