簡體   English   中英

正則表達式模式,用於忽略自定義轉義字符

[英]Regex Pattern for ignoring a custom escape character

我試圖找到一個合適的正則表達式來匹配輸入字符串中的一對自定義字符。 這些自定義字符將替換為其相應的html標簽。

例如,輸入字符串可以有成對的下划線,以粗體表示單詞。 因此, _Name_輸出為<b>Name</b>

但是,如果字符串中包含真正的下划線,則不能將其替換為“ bold”標記,而必須將其忽略。 真正的下划線必須以/開頭(我找不到更好的字符,它可能是下划線或連字符或其他形式)。 正則表達式必須忽略此真正下划線的任何單個或成對出現。

到目前為止,我可以提出這個正則表達式:

var pattern = @"(?!/)_(.*?)(?!/)_";

但是它在下面的輸入字符串中失敗:

_Tom_Katy/_Richard/_/_Stephan_and many users

輸出為

<b>Tom</b>Katy/<b>Richard/_/</b>Stephan_and many users

預先致謝

嘗試這個

@"(?<!/)_([^/]+?)[^/]_"

如果您想在搜索中包含/ ,則可以找到其中沒有/任何字符序列,請嘗試這種方式

@"(?<!\/)_(.+?)((?<!\/)_)"

說明:

(?<!/)      # this is a negative lookbehind, it says "I don't want the previous char to be /
_           # finds the first _
([^/]+?)   # tells to search characters without / (in this case your names)
[^/]_"      # finds the last _ not preceded by / (maybe redundant seen the previous one)

暫無
暫無

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

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