non-greedy

    6熱度

    6回答

    編輯:刪除原來的例子,因爲它激起配套的答案。也修正了標題。 的問題是,爲什麼在正則表達式中的「$」的存在影響表達的greedyness: 下面是一個簡單的例子:「?」 >>> import re >>> str = "baaaaaaaa" >>> m = re.search(r"a+$", str) >>> m.group() 'aaaaaaaa' >>> m = re.search(r

    2熱度

    2回答

    我有了一些不想要的字符在「XML文件」文件它 <data> <tag>blar </tag><tagTwo> bo </tagTwo> some extra characters not enclosed that I want to remove <anothertag>bbb</anothertag> </data> 我以爲以下非貪婪替代將消除那些

    4熱度

    4回答

    爲了好玩,我決定做類似於降價的事情。憑藉我過去對正則表達式的小體驗,我知道他們有多麼強大,所以他們將成爲我需要的。 所以,如果我有這樣的字符串: Hello **bold** world 如何,我可以使用的preg_replace來轉換到: ​​3210 我認爲這樣的事情? $input = "Hello **bold** world"; $output = preg_replace

    4熱度

    4回答

    我有一個非貪婪的正則表達式的問題。我已經看到有關於非貪婪的正則表達式的問題,但他們沒有回答我的問題。 問題:我試圖匹配「哈哈」錨的href。 注:我知道這可以用Perl HTML解析模塊來完成,我的問題是不約在Perl解析HTML。我的問題是關於正則表達式本身,而HTML僅僅是一個例子。 測試用例:我有4個試驗.*?和[^"]。 2首先產生預期的結果。然而,第三不和第四隻是,但我不明白爲什麼。 問

    0熱度

    3回答

    我有一個文件中的字符串A.TXT {moslate}alho{/moslate}otra{moslate}a{/moslate} 需要使用sed來得到字符串otra。 有了這個表達式 sed 's|{moslate}.*{/moslate}||g' a.txt 一個得到任何輸出,但是當我添加?的正則表達式 s|{moslate}.*?{/moslate}||g a.txt (我讀的地方,它使正則表

    14熱度

    1回答

    假設我在Scala中編寫了一個基本的SQL分析器。我有以下幾點: class Arith extends RegexParsers { def selectstatement: Parser[Any] = selectclause ~ fromclause def selectclause: Parser[Any] = "(?i)SELECT".r ~ tokens

    3熱度

    4回答

    無論我做什麼,我的正則表達式都匹配該行中最後一組字母字符。我希望它只匹配第一次發生。我嘗試過使用非貪婪算子,但它固執地匹配最右邊的阿爾法字符集,在這種情況下給$ 1的值「Trig」,這不是我想要的。我想要1美元成爲「02.04.07.06格里特」。 任何幫助,將不勝感激! CODE: elsif ($line =~ /\s(\d{2}\.\d{2}\.\d{2}\.\d{2}\s[[:alpha:

    1熱度

    1回答

    跟進這個question $test = "sed -n '1h;1!H;\${;g;s/<item=\"".$name.".*</\item>/".trim(xml)."/g;p;}' ".$file; exec($test,$cmdresult); 這個命令執行查找所有XML節點與指定名稱傳遞它作爲一個變量。這裏唯一的問題是比賽超出了最初的</item>到下一個節點,最後到最後的</it

    0熱度

    1回答

    在​​我問如何使用權重分配整數。我很好奇,如果每個分配「桶」的最小值被強加,那麼如何解決這個問題。通過強加一個最小值,這似乎是一個更加困難的問題。這裏是我的貪婪的嘗試,這是不行的: def distribute(available, weights_and_mins): distributed_amounts = [] total_weight = sum([i[0] for

    1熱度

    7回答

    我正在嘗試編寫一個正則表達式,它會將完整路徑文件名轉換爲給定文件類型的短文件名,減去文件擴展名。 例如,我試圖用 re.search('/(.*?)\.bar$', '/def_params/param_1M56/param/foo.bar') 根據Python的重新Docs軟件以便得到從字符串的.bar文件只是名字,*?是*的ungreedy版本,所以我期望得到 'foo' 返回matc