簡體   English   中英

如何為Mach特殊字符創建正則表達式

[英]How to create regex expression for mach special characters

我想為馬赫這個字符串值創建一個正則表達式:

100[some digits][some digits | some words | @][some digits | some words | @][some digits]

例:

100[1234567855][1122bb33@@aaa][222@ffff@@@][1234567890]#

我用這個正則表達式:

(100)\[(\d+)\]\[\[(\d+)|(\w+)|(\@)\[(\d+)|(\w+)|(\@)\]\[(\d+)\]#$

但它正常工作。 有任何想法嗎?

感謝您的幫助...

您的正則表達式在某些地方是錯誤的。

(100)\[(\d+)\]\[\[(\d+)|(\w+)|(\@)\[(\d+)|(\w+)|(\@)\]\[(\d+)\]#$
                ^^               ^^                ^
                 1               23                4
  • 1:重復\\ [
  • 2:缺少+
  • 3:缺少\\]
  • 4:缺少+

嘗試:

(100)\[(\d+)\]\[((\d)|(\w)|(\@))+\]\[((\d)|(\w)|(\@))+\]\[(\d+)\]#$

\\w\\d@放在字符類中,以匹配單詞字符或數字或@符號。

@"^100\[(\d+)\]\[([\d@\w]+)\]\[([\d@\w]+)\]\[(\d+)\]#$"

由於[是正則表達式中的特殊字符,因此您必須按順序轉義該字符以匹配文字[符號。 [\\d@\\w]+匹配一個或多個數字或單詞字符或@

演示

^(100)\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]#$

您可以改用它。請參閱演示。

https://regex101.com/r/vD5iH9/58

您可以通過將所有字符類包括在內來改善正則表達式。

^(100)\[(\d+)\]\[([\da-zA-Z@]+)\]\[([\da-zA-Z@]+)\]\[(\d+)\]#$

您正在捕獲(\\d+)|(\\w+)|(\\@)而測試字符串中的@兩次或三次。

嘗試執行此操作,將確保后面有一個100,然后是所需的表達式。

^:表達式的開頭。

[^ 100]:以100開頭

^(.?$|[^100]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\]\[([^\]]*)\])#

暫無
暫無

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

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