0

だから私はこのhtmlを持っています:

<img src="images" alt="alt" />
alt <a href ="http://google/something">alt</a>
test hallo world monkey
<p>alt</p>

とを含む辞書

{alt, test, hallo, world, monkey, something}

したがって、Aタグまたはimgタグ内にない単語を置き換えるには、正規表現または別の方法が必要です。次の正規表現を試しました。

(?<![a-zA-Z帿ŨÆ])alt(?![a-zA-Z帿ŨÆ])^*(?!=)$

http://rubular.com/r/p52ezGmVHO

4

2 に答える 2

1

正規表現を使用して、文字のネガティブな先読みと後読みを行うことができます。

(?<![a-zA-Z])keyword(?![a-zA-Z])

あなたの例では、これは次のようになります。

bodyText = Regex.Replace(bodyText, "(?<![a-zA-Z])" + article.headword + "(?![a-zA-Z])", "<a class=\"dic\" href=\"#\">" + article.headword + "</a>");

私の最初の意図は空白文字を積極的に検索することでしたが、句読点などを考えました。キーワードに。、!?が含まれている場合でもキーワードはキーワードです。最後にね?したがって、先読みと後読みは、基本的に、これらを置き換えることなく、キーワードの前後に何かがあるかどうかを確認します。

于 2012-07-31T10:01:54.323 に答える
0

これは私がやったことです

var regex = new Regex("(?<![a-zA-Z" + SpecialChars + "])" + article.headword + "(?![a-zA-Z" + SpecialChars + "])+(?!==)");

bodyText = regex.Replace(bodyText, "<a href=\"#dic\">" + headword + "</a>");

これは最初のものだけを置き換えます

于 2013-04-19T14:24:53.917 に答える