佚名通过本文主要向大家介绍了正则表达式匹配字符串,正则匹配字符串,java正则匹配字符串,js正则匹配字符串,php正则匹配字符串等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:正则匹配重复字符串中某一段内容
描述:
解决方案1:
描述:
有这么一个字符串
s = 'PN:\nabcd\nPN:\nabcd\nabcd\nPN:\nabcd\nabcd\n'
即
s = '''
PN:
abcd
PN:
abcd
abcd
PN:
abcd
abcd
'''
我只想匹配到其中两个PN
之间的\nabcd\n
或者\nabcd\nabcd\n
,然后我用了如下正则:
result = re.search('P\s*N:\s*(.*[\s\S]*)P.*', s, re.IGNORECASE).group(0)
最后输出result的结果为:
PN:
abcd
PN:
abcd
abcd
PN:
求大神指点~
解决方案1:
不懂python,写了下js,不知道有帮助没
var str = 'PN:\nabcd\nPN:\nabcd\nabcd\nPN:\nabcd\nabcd\n';
var result = str.match(/PN:([a-z\n])*[^PN:]+/ig);
结果
["PN:\nabcd\n", "PN:\nabcd\nabcd\n", "PN:\nabcd\nabcd\n"]
解决方案2:呃,问题已解决,不用正则就行了……
果然之前太依赖正则被自己误导了。
附上代码:
lst = s1.split('PN')
for index, each in enumerate(lst):
print index, ' + ', each
输出结果:
0 +
1 + :
abcd
2 + :
abcd
abcd
3 + :
abcd
abcd
然后只需要写个函数,从外面传参数进来就可以得到任意两个PN之间的内容了……