![](/img/trans.png)
[英]Java regex skip some characters match only one occurrence of digit, with intermittent periods
[英]Java regex skip match
我需要捕獲文本中的所有#
字符,除了那些被#[ ... #]
包圍的字符。 我編寫了PCRE版本( 在線示例 ),該版本效果很好,但Java不支持(* SKIP)(* FAIL)。
#\[.*#\](*SKIP)(*FAIL)|#
是否有這個正則表達式的Java等價物? 謝謝。
它使用一個小竅門,以匹配#
你不想第一秒,然后休息一個捕獲組匹配:
#\\[.*?#\\]|(#+)
https://regex101.com/r/sU1kR2/1
您將需要提取的第一個捕獲組,以獲得所需#
秒。
如果要捕獲每個#
不是自定義括號中的一部分,可以從捕獲組中刪除+
,如下所示:
#\\[.*?#\\]|(#)
此外,如果您可以使用##[text]#
等##[text]#
,那么您可能需要一個環視如下:
#\\[.*?#\\]|(#(?!\\[))
如果您可以使用\\K
(但我認為您不能使用Java),則使用以下內容會更簡單,因為您不必擔心捕獲組:
#\\[.*?#\\]\\K|#
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.