Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对字符串re.findall python3的轻微修改_Python_String_Parsing - Fatal编程技术网

对字符串re.findall python3的轻微修改

对字符串re.findall python3的轻微修改,python,string,parsing,Python,String,Parsing,我使用Python3.6。我目前正在read.txt文件中搜索字符串。但是,有没有办法对该字符串进行轻微修改?我给你举一个例子,上面有我的代码: lines = [] # create an empty list str1 = "as a result, we will comply with such standard" with open(read.txt, 'r') as f: line2 = f.read() var1 = re.findall(str1, line2, re.I

我使用Python3.6。我目前正在read.txt文件中搜索字符串。但是,有没有办法对该字符串进行轻微修改?我给你举一个例子,上面有我的代码:

lines = [] # create an empty list
str1 = "as a result, we will comply with such standard"
with open(read.txt, 'r') as f:
  line2 = f.read()
  var1 = re.findall(str1, line2, re.I) # find str1 in read.txt
  if len(var1) > 0:
     lines.append('1') # if it exists, append a 1 to the list "lines"
  else:
     lines.append('0') # otherwise a 0
我的问题是,我希望“re.findall”函数也可以查看相同的str1,但不使用“will”时态。也就是说,看看str1'=“因此,我们遵守了这样的标准”。如有任何建议,将不胜感激

无论如何,谢谢你抽出时间

In [29]: str1 = "as a result, we (will ){0,1}comply with such standard"

In [30]: re.search(str1, str2)
Out[30]: <_sre.SRE_Match object; span=(0, 46), match='as a result, we will comply with such standard'>

In [31]: re.search(str1, str3)
Out[31]: <_sre.SRE_Match object; span=(0, 41), match='as a result, we comply with such standard'>
由于空列表的计算结果为
False
,因此代码的工作原理相同。见此:

In [41]: bool(['will '])
Out[41]: True

In [42]: bool([])
Out[42]: False
由于空列表的计算结果为
False
,因此代码的工作原理相同。见此:

In [41]: bool(['will '])
Out[41]: True

In [42]: bool([])
Out[42]: False

你确定正则表达式是做这件事的正确工具吗?正则表达式绝对不是这里要使用的工具-在中使用多个预定义模式进行简单的查找就足够了,而且,由于模式发生变化,因此它们并非真正的
常规
,不在此处使用正则表达式不仅仅是因为性能。你确定正则表达式是正确的工具吗?正则表达式绝对不是此处使用的工具-在中使用多个预定义模式进行简单的
查找就足够了,由于模式发生了变化,它们并不是真正的
规则,所以这里不使用正则表达式不仅仅是因为性能。问号(0或1重复)比星号(0或更多重复)更有意义。如图所示,这将匹配“…我们将遵守…”是的,我实际上考虑添加
{0,1}
。现在我要感谢你们两位。我实际上在寻找re.findall()。刚刚编辑了标题。“这不是差不多吗?”马丁斯不完全一样。我用一些不同的例子更新了我的答案。由于
re.findall
返回一个空列表,因此在代码中的最终结果将是相同的,因为在布尔兰德中,空列表的计算结果为
False
。问号(0或1重复)比星号(0或更多重复)更有意义。如图所示,这将匹配“…我们将遵守…”是的,我实际上考虑添加
{0,1}
。现在我要感谢你们两位。我实际上在寻找re.findall()。刚刚编辑了标题。“这不是差不多吗?”马丁斯不完全一样。我用一些不同的例子更新了我的答案。但是,由于
re.findall
返回一个空列表,因此代码中的最终结果将是相同的,因为在Bool Land中,空列表的计算结果为
False