Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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
Python多行模式_Python_Regex_Algorithm_Python 2.7_Find - Fatal编程技术网

Python多行模式

Python多行模式,python,regex,algorithm,python-2.7,find,Python,Regex,Algorithm,Python 2.7,Find,我需要在字符串中找到一个模式 该模式为多行模式,仅包含ASCII字符: p = """ _o_ | / \ """ 在这个字符串中,我必须计算模式(也可以包含所有ASCII字符): search_text=”“” _o_ | /\\u o_ _欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧 | / \ | /\\可能 import re pa

我需要在字符串中找到一个模式

该模式为多行模式,仅包含ASCII字符:

p = """
_o_
 |
/ \
"""
在这个字符串中,我必须计算模式(也可以包含所有ASCII字符):

search_text=”“”
_o_
|
/\\u o_
_欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧欧
|                             / \        |
/\\可能

import re

pattern = r"(o)"

# patterns in a multiline string
search_text = """
             _o_
              |
             / \               _o_
_o_                             |
 |                             / \
/ \ 
"""

print('Number of heads found: ' + str(len(re.findall(pattern, search_text, flags=re.MULTILINE))))
产出:

Number of heads found: 3

如果“heads”不起作用,可能是所有模式组中出现的其他东西?只是一个想法。

如果你不知道字符串的宽度,我认为你不能在这里使用正则表达式,我认为你必须使用标准的搜索alogrithmthanx作为答案,你能推荐一些搜索算法吗?(如果有的话)嗯@Peter,我正要用regex以外的算法来回答你的问题。因此,如果你能用regex来回答,试着通过编辑相关信息来重新打开问题,使其不会重复,只有这样我才能发布我的答案。不知道该算法是否比regex更好,但只是一种不同的方法。好的LuckThanx的答案,但在测试用例中也可以出现所有ASCII字符。将更新问题
Number of heads found: 3