我正在製作符合html代碼中某些條款的正則表達式。我在迭代過程中這樣做,以減少比賽排除我不想要的東西。所以我製作了一個正則表達式,運行它,然後吐出數據,然後查看我的匹配效果如何。例如,如果我在尋找術語「tema」(提供標準的貿易協會的名稱),我可能會注意到它也與「站點地圖」匹配,並以某種方式更改我的正則表達式以排除不需要的項目。如何在perl正則表達式匹配之前和之後抓取一定數量的字符?
爲了使這更容易,我想打印出我的匹配以及一些上下文,比如在匹配之前和之後說20個字符,而不是整行,以便更容易地掃描結果。這很難以簡單的方式完成。
例如,我認爲這會工作:
$line =~ /(.{,20}tema.{,20})/i;
也就是說,我要投其所好,以我的關鍵字前後什麼20,包括它的「上下文」我打印進行掃描。
但它沒有。我在這裏錯過了什麼嗎?如果一個{,20}匹配20個'a'字符,爲什麼不匹配20個'。'。會匹配嗎?
撓我的頭。
什麼你是不是指'它不'?你的角色少了嗎?沒有字符?不匹配?一個錯誤?請注意'.'不能匹配換行符。如果要在這些任意字符中包含換行符,請使用's'修飾符。 –
我不認爲你的代碼示例是正確的。 –
它不會返回任何東西。沒有匹配。 –