用于在python中循环时匹配字母表、数字和特殊特许权的正则表达式
我正试图找到文字和打印使用下面的代码。一切都很完美,但唯一的问题是我无法打印最后一个字(即数字) 我正在使用的文本文件:用于在python中循环时匹配字母表、数字和特殊特许权的正则表达式,python,regex,Python,Regex,我正试图找到文字和打印使用下面的代码。一切都很完美,但唯一的问题是我无法打印最后一个字(即数字) 我正在使用的文本文件: textfile = """1, REBECCA M. ROTH , COLLECTOR OF TAXES of the taxing district of the township of MORRIS for Six Hundred Sixty Seven dollars andFifty Two cents, the land in sai
textfile = """1, REBECCA M. ROTH , COLLECTOR OF TAXES of the taxing district of the
township of MORRIS for Six Hundred Sixty Seven dollars andFifty Two cents, the land
in said taxing district described as Block No. 10303 Lot No. 10 :
and known as 239 E HANOVER AVE , on the tax Taxes For: 2012
Sewer
Assessments For Improvements
Total Cost of Sale 35.00
Total
Premium (if any) Paid 1,400.00 """
我想知道我在哪里犯了错误。
欢迎提出任何建议。两个问题:
'Premium(如果有)Paid'
字符串以空格结尾,并且'{}([^]*)'
后面还有一个空格,将它们相加。删除“已支付保险费(如有)”中的尾随空格
['Premium\(如果有的话)\)Paid']
。您也可以改用re.escape
words = ['Town of','Block No.','Lot No.','Premium (if any) Paid']
import re
for i in words:
y = re.findall('{}\s+([\S]*)'.format(re.escape(i)), text, re.I)
print(y)
有几个问题:
(
)
和点
。非常简单,您可以使用Premium\(如果有的话)
中的尾随空格(它试图匹配两个空格,而不是一个,因为您还在正则表达式{}([^]*)
中检查空格)你能简单介绍一下你想用正则表达式为每个单词匹配什么吗(这样我们就可以帮助你了解你想用正则表达式做什么)?@MaheshAnakali这是一个words-in-words变量中的单词列表。你可以查看上面的代码,我试过了,但是没有用。最后一个字没有出现。你点击链接看到tio上运行的代码了吗?输出部分包含1400I尝试转义括号,但不起作用。我找到了使用.replace删除括号的简单方法。但是问题还没有解决,是不是你已经删除了列表中“付费”后的空格?你能评论一下你在这里得到的输出吗?这里有一个[链接][用于我正在使用的原始文本文件,我得到的输出是这样的:[['30708']['15']['']好吧,在这种情况下,“溢价(如果有的话)已支付”在所有大写字母中。因此添加
re.I
标志。此外,短语后面有多个空格,因此您需要相应地更改正则表达式。在我的答案中添加工作代码以满足您的需要。
words = ['Town of','Block No.','Lot No.','Premium (if any) Paid']
import re
for i in words:
y = re.findall('{}\s+([\S]*)'.format(re.escape(i)), text, re.I)
print(y)
words = ['Town of','Block No.','Lot No.','Premium (if any) Paid']
import re
for i in words:
y = re.findall('{} ([^ ]*)'.format(re.escape(i)), textfile)
print(y)