簡體   English   中英

正則表達式僅查找一次包含特定文本的字符串

[英]Regex to find strings that contain a certain text only once

我需要在文件中找到所有文本的位置,其中某個文本恰好出現一次。 該文本是類似以下內容的出現:

##somethingVariable##

也就是說,字符串始終在##和##之間

我正在使用以下RegEx:

(?<!.*<CAPTURE>.*)(?<CAPTURE>##[^#]*##)(?!.*<CAPTURE>.*)

我找到我需要的

##[^#]*## 

我將其捕獲並命名,並且說僅在它之前或之后沒有相同的捕獲文本時才找到它。 我還嘗試了^ $之前和之后以及一些。*之前和之后的不同組合,但是它不起作用。 我究竟做錯了什么?

例子:

inThisString##THIS##appreasJustOnceAndIWantToFindIt
inThisString##THAT##AppreasTwiceAndIDoNOTWantToFind##THAT##case

您可以像這樣使用基於前瞻的正則表達式:

^(?:(?!##).)*(##[^#]*##)(?!.*?\1).*$

正則演示

這將匹配示例中的第一個輸入,但不匹配第二個輸入。

暫無
暫無

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

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