我有这个字符串
0Sc-a+nn1.ed_AI&AO1301#89
必须分为三部分
0Sc-a+nn1.ed_AI&AO
1301
89
我在python中使用此RE (?P<prefix>[a-z\.\_\-\+(\&)]+\W?)(?P<num>((?P<ref_num>\d+)(#(?P<subpart_num>\d+))?))
,但现在,在https://regex101.com/中进行测试。
我在确定第一部分时遇到问题。如果我尝试&#34; Sc-a + nn.ed_AI&amp; AO1301#89&#34;工作正常,但将数字添加到第一部分,例如,不要。
如何将第二部分和第三部分修改为#
周围允许的最大长度,并且第一部分()允许在开头和中间的数字(从不在结尾,因为将在第二部分) ? ?
就在那里,因为有时前面的元素不存在。
答案 0 :(得分:1)
使用[a-zA-Z]{2}
捕获&
后的字符串,并指定每个部分的长度,即[\d]{4}
(?P<prefix>[A-Za-z0-9._\-+&;]+[a-zA-Z]{2}?)(?P<num>((?P<ref_num>\d+)(#(?P<subpart_num>\d+))?))