2014-03-27 29 views
0

我在做一個查找&在記事本++中替換。每件作品都能正常工作,但是當我將整個字符串放在一起時,它不起作用。正則表達式在記事本++中不起作用

我有一箇舊的HTML文檔,我的編輯在原始頁面削減了文本,即:

<div> 
    <h2>Title</h2> 
    <p>This is a line of[CR][LF] 
    text that was cut to[CR][LF] 
    fit on screen.</p> 
</div> 

我想找到的換行符被切碎這些文字並消除它們,但不其他換行符。

我的正則表達式爲:

([A-z0-9]+)[\r\n][ ]{3,}([A-z0-9]+) 

將被替換爲:

$1 $2 

我已經試過我的每一個正則表達式的作品,他們都找到了我所期望的:([A-z0-9]+)找到文本,[\r\n]正在查找我的換行符,[ ]{3,}正在查找其初始縮進,並且([A-z0-9]+)再次查找文本。

我甚至試過套表情,他們所有的工作:([A-z0-9]+)[\r\n]是在一行的末尾查找文本,[\r\n][ ]{3,}是找到符合在新行的開始縮進打破,並[ ]{3,}([A-z0-9]+)是找到最初的縮進其次通過文本。

也許我有兩個問題: 1)這是一個Notepad ++錯誤,還是我錯過了我的正則表達式? 2)任何想法解決這個由其他表達?

如果它是一個錯誤,我想我可以只是試驗和錯誤,直到有些東西有效。儘管如此,如果任何人都可以驗證,那麼報告錯誤可能會很有幫助。

+0

你的正則表達式不符合您的示例文本。另外,請勿使用'[A-z]',因爲它接受的字符多於字母。更喜歡'[A-ZA-Z]' – Toto

+0

我會強調它比這更強調:'[A-Z]'不*意指'[A-ZA-Z]'不要使用它。 – aliteralmind

+0

我編輯了我的示例文本,不確定這是否是您的意思。 '[A-z]'接受了哪些額外的字符? – Thomas

回答

1

你的正則表達式:

([A-z0-9]+)[\r\n][ ]{3,}([A-z0-9]+) 

匹配的\r\n之一。

使用此:

([A-Za-z0-9]+)[\r\n]+[ ]{3,}([A-Za-z0-9]+) 

([A-Za-z0-9]+)\R+[ ]{3,}([A-Za-z0-9]+) 
+0

我想是的,謝謝。我用'([A-Za-z0-9] +)\ r \ n [] {3,}([A-Za-z0-9] +)'。這對你來說似乎是另一個適當的解決方案嗎?我不熟悉'\ R',那是什麼? – Thomas

+1

@Thomas:'\ R'代表'\ n'或'\ r'或'\ r \ n'中的任何一個。 – Toto