簡體   English   中英

正則表達式模式以匹配未被特殊字符包圍的字符

[英]Regex Pattern to Match Character Not Surrounded by Particular Characters

我試圖使用正則表達式來匹配某個特定字符,僅當它不緊鄰某個特定字符時。 (對於Calibre的電子書)

具體而言,我想匹配所有不屬於在句子的結尾,這意味着它們將是常規字符,而不是一個角撐架或空間之間。 我以為”[^<]會起作用,但這會同時選擇引號和下一個字符,而不僅是字符本身。 我也不確定如何執行“或”檢查空間。 我假設它將是類似”[^<]|[^ ]但這也不對。

這是我要匹配的示例:

在尖括號旁邊: <p class="calibre1">“I”m tired!”</p>

在空間旁邊: <p class="calibre1">“I”m tired!” he said</p>

只能選擇I”m內的引號(並且只能選擇引號本身)

如果對此有一個明顯的答案,我感到很抱歉,但是我一直在閱讀Python的regex文檔,但無法弄清楚。 :(

您可以這樣使用負前瞻(?! ... )

”(?!<)

這將匹配除非其后跟<

要添加空間...

”(?![< ])

一個將匹配 ,除非隨后<或空間。

使用負前瞻

regex = r '"(?!<|\s)'

| 表示“或”
\\s表示空格

您不需要捕獲,因為您知道只匹配"

或者,可以使用字符類代替or,即: [<\\s]

暫無
暫無

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

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