2017-05-26 8 views
-1

ABRAタグ内にMadCap:Variableという文字列が必要です。私は/variable.*ABRA.*\//g>を使用しようとしましたが、予想以上の結果が得られました。 Sample of my test正規表現の結果が予想より長い

例ではテキストの代わりにvariable name="General.ProductNameABRAG1" />のようなものしか得られません。私のミスはどこですか?

編集。 WiktorStribiżewが指摘しているように、XMLを解析するためには、HTMLがHTMLパーサを使用する方が良いです。私は技術を変えることができないので、私はregexにこだわっています。反対に、私が見つけなければならないすべてのテキストは、>タグ内にないことが保証されています。

+0

@Janいいえ、http://regexr.com/3g1riを参照してください。 Sk1X1、間違いは正規表現でHTMLを解析することです。 –

+1

'.'の代わりに' [^]] 'を使用してください。 –

+0

@WiktorStribiżew これは意味がありませんか?私は今のところ正規表現を使用することに固執しています。 – Sk1X1

答えて

0

使用[^>]正規表現は*?はバックトラックを避けることができます一致怠惰/貪欲をサポートしている場合にも、.のinsteafタグマーカーの終わりである>以外の任意の文字にマッチします。

/variable[^>]*?ABRA[^>]*\/>/g 
+0

間に '>'がある場合は、 '>'を直列化しないと、一致しません。 –

+0

@WiktorStribiżew '>'は値のタグの中に現れてはならない '>' –

+0

いいえ、いくつかのXMLパーサでは必須ではありません。私たちは '>'を持つXMLを扱わなければならず、 '[^>]に依存することはできませんでした。 –

関連する問題