NegativeLookBehindを使用できます。あなたはほとんどそこにいましたが、LookAheadsを使用しています。
RegExp:(?<!asp|vb|c\#)\.[a-zA-Z]{2,6}\b
何も置き換えない
ここでデモの説明:http://regex101.com/r/tG5rO1
可変長の正規表現エラーを回避するには、次を使用します。(?<!asp)(?<!vb|c\#)\.[a-z]{2,6}\b
編集:異なる長さの除外された単語のLookBehindグループを分離します
これは、基準に一致しないTLDのみを検索します。
アップデート:
特殊なケースに対処するには:除外された単語で終わる単語と一致させず、除外された単語の任意の組み合わせと一致させます(例vB
VB
vb
Vb
) 。
RegExp:\b(?<!\b[aA][sS][pP])(?<!\b[vV][bB]|\b[cC]\#)\.[a-zA-Z]{2,6}\b
説明されたデモ: http: //regex101.com/r/bR3kJ8
または:RegEx修飾子i\b(?<!\basp)(?<!\bvb|\bc\#)\.[a-z]{2,6}\b
と一緒
に使用する場合case insensitive
アップデート#2
.net
TLDと除外された単語のみを考慮しているため、より安全です。
/(^|\s)(?!(?:visual)?(?:basic|studio|asp|v[bs]|c\#)\.net)(\w+)(?:\.com?\.[a-z]{2}|\.[a-z]{2,6})\b/\1\2/gi
以前のバリアントとは対照的に、交換が必要です。
説明されたデモ: http: //regex101.com/r/kL5mQ5