我想在perl中使用二進制OR運算符從文件中獲取一些信息。我用這個正則表達式爲什麼這個OR運算符不在perl中工作
/(fix|issue)\s*#/mi
但它沒有找到任何匹配。在文件中有 有4個匹配的'fix#'和3個匹配的'issue#',並且我在沒有OR操作符的情況下單獨使用它們時得到了正確的結果。
/fix\s*#/mi
/issue\s*#/mi
所以OR假設返回7個匹配,但它什麼也沒有返回。
這兩條線是完全相同的文件中
Add test for the example in issue #142.
Fix #1190
我這樣做對嗎?
感謝您的幫助
這不是二進制OR,它是一個正則表達式中的OR。沒有看到您的真實意見,我們不知道您的模式是否有效。沒有'/ g',除非有零,否則你永遠不會得到多於一次的比賽。 – simbabque
輸入是超過1000行的大文件。該文件具有完全「問題#」和「修復#」。 – Hukh
文件的大小對我們無關緊要。您可以包含您認爲應該匹配的一行,以及不應包含的一行。更好的是,編輯你的問題,幷包括你編寫的完整程序。正如下面的choroba指出的那樣,這應該起作用。所以這個bug可能在我們看不到的代碼中。 – simbabque