关于我的两个正则表达式问题如下所示:

[
font='2' class='001'
type='1'
]
[canshu='id' fieldsn='4']

上面是一个字符串,[]中的东西类似html中的属性,[]中间有未知数行,两个括号中的内容也都未知,一段文本中有未知个[](类似上面的写法)组成的内容,我的想法是找出所有的[]中的内容,并可以通过函数提取特定值.我的做法是:
先匹配出[],取得[]中间的字符串,暂通过一个函数取得字符串中特定参数的值,比若我已经得到一个字符串canshu='id' fieldsn='4',我想通过函数getcanshu(fromstr,"fieldsn"),其中fromstr就是canshu='id' fieldsn='4',我想让这个函数返回4

我的问题是:1.如果[]不分行可以提取,否则,俺弄不成了,也就是说如何不管是否分行都可以匹配[].2.怎样匹配canshu='id',其中id可以是空,即可以匹配canshu=''

qq_笑_17
浏览 128回答 2
2回答

开满天机

最好分几次来做。1. 把\r\n替换掉.2. 用: \[\s*([^\]]*)+\s*\]获取所有[]里的数据, 比如:canshu='id' fieldsn='4'3. 对每个数据用下面的获取: (\w+)='([^']+)'这样可以获取每个属性段了: $1 = canshu $2=id

慕尼黑5688855

<div id=main>[(shownav)(class='001'type='vr' )]</div><div id=footer>{footer}</div>[(showinf)(ID1)(4)]
打开App,查看更多内容
随时随地看视频慕课网APP