簡體   English   中英

正則表達式公式不在HTML標記內

[英]Regex formula not looking inside HTML tags

我的正則表達式模式適用於HTML標記中未包含的所有文本:

((?<!-)\btest(?!-)\b)(?=[^<>]*(?:<\w|$))

在下面的示例中,我需要它在這兩個字符串中找到“ test”的兩個實例:

vdsv ds test dsv sdlvk 
<b>dsjn vkjsd test sv</b>

在.NET中,您可以在后面使用無限寬度:

\b(?<!-)test\b(?<!<[^<>]*)(?!-|[^<>]*>)

請參閱.NET正則表達式演示

在代碼中:

var pattern = @"\b(?<!-)test\b(?<!<[^<>]*)(?!-|[^<>]*>)";

細節

  • \\b單詞邊界
  • (?<!-) -如果在當前位置的左側緊跟着-則負向后搜索將使匹配失敗
  • test -單詞test
  • \\b單詞邊界
  • (?<!<[^<>]*) -如果在當前位置的左邊有一個<以及除<>以外的0個或多個字符,匹配失敗將失敗。
  • (?!-|[^<>]*>) -失敗的匹配,如果有一個負先行-或比其他任何0+字符<>遵循的>立即到當前位置的右側。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM