我想匹配的結構是這樣的一行:正則表達式需要很長的時間才能完成
- 線開始
- 多「 - 」
- 也許一個空白(也許更多)
- 至少一個字符
- 也許更多的字符和空格
- 也許一個空白(也許更多)
- 多「 - 」
- 行末
所以我寫的正則表達式是這樣的:
new Regex(@"^\-{2,}\s*(\w+(\w+|\s)*)\s*\-{2,}$");
當我嘗試匹配下面的行,這需要年齡完成(沒」迫不及待它完成):
-------- Variable used for recipe visualization only - Not loaded into PLC --------
我覺得有一個在它和正則表達式匹配的一個非常大的數量已經很難列舉所有的比賽,但我不河畔即
環境信息:Windows 7中,框架3.5
謝謝
編輯:感謝你的幫助,我想出了一個可行的正則表達式:
^-{2,}\s*(?!\-)(\w(?:\w|\s|\-)+)(?<!\-)\s*-{2,}$
於是解釋:
- 行首
- 至少有兩個 ' - '
- 也許一個空白(也許更多)
- 沒有更多 ' - '
- 至少一個字符
- 也許更多的字符,空格或 ' - '
- 沒有更多 ' - '
- 也許一個空白(也許更多)
- 至少有兩個 ' - '
- 結束行 的10
如果你看到的東西錯了,請告訴我
由於「只有 - 不是」的內部破折號,這不會匹配。 – juharr
你的問題是你不允許中間的' - '被捕獲 – Jonesopolis
我剛剛在https://myregextester.com/index.php上試過這個,它在0.018301秒內運行。但在C#中運行確實需要很長時間,但刪除內部破折號確實會加快速度。 – juharr