[英]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
嘗試:
(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.