[英]RegEx match of a string
我在用c#工作並且是一個有趣的項目,現在我的RegEx遇到了問題。 我嘗試了一些變更,但沒有找到解決方案。 我想要此字符串"##Test1##"
的RegEx 。
所以我在這里嘗試過此RegEx:
[\#]{2}[a-zA-Z0-9]{1,}[\#]{2}
其工作正常,但我的問題是,
當傳遞"###Test1###"
,RegEx會忽略第一個和最后一個#
並匹配內部的"##Test1##"
。
但是我不想要那個。
RegEx僅應與此字符串##Test1##
匹配。
希望這里有些人可以幫助我解決這個問題。
問候,
如果正則表達式只應與您指定的字符串匹配,則為正則表達式:
^##Test1##$
如果您希望它匹配"##(any digit or letter here)##"
類的字符串,則可以使用:
^##[a-zA-Z0-9]+##$
這將匹配字符串
##abc##
##123##
但不是
###xxx### <-- 3 #'s
我認為您要在此處查找的主要部分是以下兩個符號:
+------------------- matches the beginning of the string
| +-- matches the end of the string
v v
^##[a-zA-Z0-9]+##$
這兩項將確保你沒有搜索到的字符串,看看你的格局里面它的存在,但如果字符串的模式匹配完全你不是檢查。
單獨使用時,以及嵌入較長的字符序列時,這將匹配所需的字符串:
[^#]*##[a-zA-Z0-9]+##[^#]*
Hello##World##! -> matches=true
##World## -> matches=true
Hello##World### -> matches=false
###World### -> matches=false
好吧,那是因為包含在里面,所以顯然是正確的。 如果在結尾處使用“排除”字符(如.^#*
,那該怎么辦,但顯然只有當您要避免使用該字符時,該方法才有效...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.