2017-03-27 1 views
0

複数のHTMLページの内容を分析するRegexを構築しようとしていて、 "ààâ ã "。 アクセント付きの文字が検出された場合はパターン全体をキャプチャし、コメントの場合は無視します。ここでC#Regexは、特定の文字が含まれている場合に行の内容をキャプチャまたは除外する

は例です:

<li><a href="#prepaid-plan" data-toggle="tab">I want to capture this á</a </li> 
//I don't want to capture this á 

上記の例では、唯一の捕獲する必要があります

<li><a href="#prepaid-plan" data-toggle="tab">I want to capture this á</a </li> 

を私はこれまでのところ、このパターン作りました:

(\W(?<!\/\/)(?=\w*[á|â|ã|à|é|ê|è|í|î|ì|ó|ô|õ|ò|ú|û|ù])\S*) 

をしかし、とき、それが失敗しましたアクセント付きの文字を含む単語は、即座に「//」の後に続くものではなく、単語全体をキャプチャするだけで、行全体ではありません。

あなたは私を助けることができますか?前もって感謝します!

-------------- ANSWER -------------私はコメントのミックスと正解だった使用

正規表現私はマークしました。

([\n]|^)(?<Value>(?! *\/\/| *@\*| *\/\*| *<!--| *\\\*)([^\n]*?)[áâãàéêèíîìóôõòúûù](((?! *\/\/| *@\*| *\/\*| *<!--| *\\\*).)*)) 

それがアクセント付き文字を持っている場合は、この正規表現は、コメントを無視し、行全体をキャプチャします - 彼らはそれらの後ろのスペースを持っている場合でも(@ * // */* <!)。

コメントをして回答した人に再度感謝します。

+0

他のタイプのコメントはどうですか?すなわち/ * * /と itsme86

+0

あなたはキャプチャグループを使用しているときだけパイプが必要です。 '(a | b | c)'。角括弧は、1つの文字に過ぎません。 '[áâãàêêèíîìóóòòòûù]'。あなたが今それを持っている方法は、文字通り '| ' – Marie

+0

@Marieと私が訂正してくれたことに感謝します。 – Paz

答えて

0

([\n]|^)(?!\/\/)([^\n]*?)[á|â|ã|à|é|ê|è|í|î|ì|ó|ô|õ|ò|ú|û|ù](((?!\/\/).)*) 

または指定されたグループ

([\n]|^)(?<Value>(?!\/\/)([^\n]*?)[á|â|ã|à|é|ê|è|í|î|ì|ó|ô|õ|ò|ú|û|ù](((?!\/\/).)*)) 

と値群の値を取るとのようなものについて。

+0

まさに私が欲しかったこと、ありがとう – Paz

関連する問題