日期:2014-05-18  浏览次数:20778 次

请教正则表达式,匹配bdhd://到.rmvb
$bdhd://271356502|EFC0D876B651D12B54B0B94A01EE37BC|\u706B\u5F71\u5FCD\u8005203-205.rmvb$bdhd'
$bdhd://110046361|1905D3445D16E895003ADDF4A6B4C7D8|\u706B\u5F71\u5FCD\u8005194.rmvbbdhd'

$bdhd://132727296|7F13CA949ECD0AAA614F1BADF8549CE3|\u706B\u5F71\u5FCD\u8005[\u7B2C434\u8BDD].rmvb$bdhd


前面两个用(\bbdhd://)(.+?)(\b.rmvb)还能取得到,第三个不行了,郁闷,这是为什么

------解决方案--------------------
(\bbdhd://)(.+?)(\d.rmvb)
------解决方案--------------------
Regex reg = new Regex(@"(?is)\$bdhd.*?rmvb.*?");
------解决方案--------------------
探讨

难道问题出在一对[]上?

------解决方案--------------------
(?i)(\bbdhd://)([\s\S]+?)(\.rmvb)


\b 是正则表达式规定的一个特殊代码(好吧,某些人叫它元字符,metacharacter ),代表着单词的开头或
结尾,也就是单词的分界处。虽然通常英文的单词是由空格或标点符号或换行来分隔的,但是\b 并不匹配这些单
词分隔符中的任何一个,它只匹配一个位置。(如果需要更精确的说法, \b 匹配这样的位置:它的前一个字符和
后一个字符不全是(一个是,一个不是或不存在) \w )
假如你要找的是hi后面不远处跟着一个Lucy ,你应该用\bhi\b.*\bLucy\b 。
------解决方案--------------------
(\bbdhd://)(.+?)(\.rmvb)


应该这样。
------解决方案--------------------
探讨
$bdhd://271356502|EFC0D876B651D12B54B0B94A01EE37BC|\u706B\u5F71\u5FCD\u8005203-205.rmvb$bdhd'
$bdhd://110046361|1905D3445D16E895003ADDF4A6B4C7D8|\u706B\u5F71\u5FCD\u8005194.rmvbbdhd'

$bdhd://13272……