亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 6153 | 回復(fù): 17
打印 上一主題 下一主題

急!求救一個(gè)perl多行正則匹配問題 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-09-23 18:02 |只看該作者 |倒序?yàn)g覽
標(biāo)量是一個(gè)多行的字符串.現(xiàn)在想匹配到 haha@163.com.cn
和SetEnv SINASRV_DB_NAME searchbetav 里面的這個(gè)數(shù)據(jù)庫的名字:searchbetav
(把這些放入一個(gè)文件中一行行匹配我會,這里要希望從一個(gè)標(biāo)量匹配)
我寫的匹配:
my $dbname='searchbetav';
if ($aa=~m/ServerAdmin\s+(\w+\d*\@staff\.sina\.com\.cn).*?(SetEnv.*SINASRV.*DB.*NAME\s+)($dbname$)/s)
{
print "$1*\n";
print "$2**\n";
print "$3***\n";
print "$4====\n";
}
各位高手給看看有上面問題 ,怎么才能把兩個(gè)匹配上.

$aa='ServerName search.beta.v.sina.com.cn
ServerAlias search.video.sina.com.cn

ServerAdmin haha@163.com.cn
DocumentRoot /data1/www/htdocs/search.beta.v.sina.com.cn/
ErrorLog /data1/www/logs/search.video.sina.com.cn-error_log
CustomLog /data1/www/logs/search.video.sina.com.cn-access_log

SetEnv SINASRV_DATA_DIR "/data1/www/data/search.beta.v.sina.com.cn/"
SetEnv SINASRV_CACHE_DIR "/data1/www/cache/search.beta.v.sina.com.cn/"
SetEnv SINASRV_PRIVDATA_DIR "/data1/www/privdata/search.beta.v.sina.com.cn/"
SetEnv SINASRV_APPLOGS_DIR "/data1/www/applogs/search.beta.v.sina.com.cn/"

SetEnv SINASRV_DATA_URL "http://search.beta.v.sina.com.cn/data"
SetEnv SINASRV_CACHE_URL "http://search.beta.v.sina.com.cn/cache"

#SetEnv SINASRV_NDATA_DIR "/datanfs1/sinasrv/www/ndata/search.beta.v.sina.com.cn/"
SetEnv SINASRV_NDATA_CACHE_URL "http://cache.mars.sina.com.cn/nd/searchbetav/"

SetEnv SINASRV_DB_HOST m3380i.mars.grid.sina.com.cn
SetEnv SINASRV_DB_HOST_R s3380i.mars.grid.sina.com.cn
SetEnv SINASRV_DB_PORT 3380
SetEnv SINASRV_DB_NAME searchbetav
SetEnv SINASRV_DB_USER searchbetav
SetEnv SINASRV_DB_PASS 1wSeH45tGc
SetEnv SINASRV_DB_PORT_R 3380
SetEnv SINASRV_DB_NAME_R searchbetav
SetEnv SINASRV_DB_USER_R searchbetav_r
SetEnv SINASRV_DB_PASS_R T5Gbv3edC45f

SetEnv SINASRV_MEMCACHED_KEY_PREFIX "search_beta_v-"';

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2009-09-23 18:12 |只看該作者

回復(fù) #1 litaosmile 的帖子

增加一修飾詞
$aa=~ m/.../sm

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2009-09-23 18:40 |只看該作者
if ($array[100]=~m/ServerAdmin\s+(\w+\d*\@staff\.sina\.com\.cn).*?(SetEnv.*SINASRV.*DB.*NAME\s+)($dbname$)/ms)
大哥這樣還是不行!

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2009-09-23 18:40 |只看該作者
先找一個(gè) 然后再找到一個(gè)的情況下再去找另一個(gè).可以解決.那樣需要匹配兩次.想知道用一個(gè)正則怎么匹配.

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2009-09-23 18:47 |只看該作者
看了半天,終于有點(diǎn)明白lz的意思了,lz是說對于文件的一行一行匹配沒問題,但是 $aa 中的內(nèi)容,沒法按行讀取了,如何找出一個(gè)郵箱和數(shù)據(jù)庫名?是這個(gè)理解的話:
對于/m只能在一定程度上解決多行匹配的問題,必須^ /$結(jié)合使用,不怎么推薦,split 轉(zhuǎn)化為自己會的方式,不更好?

my @aa = split("\n", $aa); #注意你的文本是 /r/n 還是  /n
foreach (@aa) {
   if ($str =~/xxx/) {
      print "xxx\n";
   }
}

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2009-09-23 19:05 |只看該作者
我也試了一下,好像匹配沒有發(fā)生。
不知道咋回事了?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2009-09-23 19:13 |只看該作者
原帖由 dugu072 于 2009-9-23 18:47 發(fā)表
看了半天,終于有點(diǎn)明白lz的意思了,lz是說對于文件的一行一行匹配沒問題,但是 $aa 中的內(nèi)容,沒法按行讀取了,如何找出一個(gè)郵箱和數(shù)據(jù)庫名?是這個(gè)理解的話:
對于/m只能在一定程度上解決多行匹配的問題,必 ...

恩 這個(gè)方法不錯(cuò)!謝謝了

論壇徽章:
5
2015年辭舊歲徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亞洲杯之朝鮮
日期:2015-03-13 22:47:33IT運(yùn)維版塊每日發(fā)帖之星
日期:2016-01-09 06:20:00IT運(yùn)維版塊每周發(fā)帖之星
日期:2016-03-07 16:27:44
8 [報(bào)告]
發(fā)表于 2009-09-24 10:04 |只看該作者

回復(fù) #1 litaosmile 的帖子

$aa里面沒有staff啊,如何匹配?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2009-09-24 11:09 |只看該作者
if ($aa=~m/^ServerAdmin.*?\s([\w]+\@163\.com\.cn).*?(SetEnv.*)?($dbname)/mgs)
不知道你中間(SetEnv.*SINASRV.*DB.*NAME\s+)想匹配什么?

應(yīng)該加上m,/s只能讓.匹配\n。

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2009-09-24 13:26 |只看該作者
原帖由 dahe_1984 于 2009-9-24 11:09 發(fā)表
if ($aa=~m/^ServerAdmin.*?\s([\w]+\@163\.com\.cn).*?(SetEnv.*)?($dbname)/mgs)
不知道你中間(SetEnv.*SINASRV.*DB.*NAME\s+)想匹配什么?

應(yīng)該加上m,/s只能讓.匹配\n。

SetEnv SINASRV_DB_HOST m3380i.mars.grid.sina.com.cn
SetEnv SINASRV_DB_HOST_R s3380i.mars.grid.sina.com.cn
SetEnv SINASRV_DB_PORT 3380
SetEnv SINASRV_DB_NAME searchbetav
SetEnv SINASRV_DB_USER searchbetav
SetEnv SINASRV_DB_PASS 1wSeH45tGc
SetEnv SINASRV_DB_PORT_R 3380
SetEnv SINASRV_DB_NAME_R searchbetav
SetEnv SINASRV_DB_USER_R searchbetav_r
SetEnv SINASRV_DB_PASS_R T5Gbv3edC45f

這個(gè)只是其中一個(gè),還有很多類似于SINASRV_DB_NAME樣子的 ,比如SINASRV_DB2_NAME等
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP