HURRICANE小组最近接到了一个搜索文本的任务,即从一个由数字构成的长文本中,匹配满足指定条件的子串。搜索的条件采用形如‘(0+10*1)*10*’这样的正则表达式来描述。其中正则表达式的归纳定义如下: 1. 0, 1, …, 9,0*, 1*, …, 9*是正则表达式; 2. 如果A和B是正则表达式,则(A),A+B,AB,(A)*都是正则表达式; 3. 只有按以上方法构造出来的表达式才是正则表达式。 其中,A+B表示“或者”关系,AB表示“连接”关系,(A)*表示A的内容“重复”零次或者多次。比如正则表达式(12+3)(4+5)6*,就可以匹配以124,125,34,35之一开头,之后接零0个或任意多个6的字符串(例如字符串12566)。正则表达式(1+0)*可以匹配所有由0和1构成的字符串,或者是空串。如果一个正则表达式不能匹配空串,则称它是非空的。本题考虑的都是非空正则表达式。如果在给定文本的某一个位置,存在一个以该位置结束的子串,能够被给定的非空正则表达式匹配,则称该位置是可匹配的。现在HURRICANE小组接到的任务就是找出所有可匹配的位置。你能帮助他们完成这个任务么?【任务描述】你的程序需要根据给定的输入,给出符合题意的输出: 输入包括一个满足如上定义的正则表达式,以及一长串文本; 你需要根据输入的正则表达式及文本,找出文本中所有可匹配的位置; 你给出的输出需要包括所有可匹配的位置。