[英]Very simple regex not working
我已經讀過要使用正則表達式(在.NET中)匹配字符串中的單詞,可以在正則表達式中使用單詞邊界說明符( \\b
)。 但是,這些調用都不會導致任何匹配
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\b@p1\b");
Regex.Match("INSERT INTO TEST(Col1,Col2) VALUES(@p1,@p2)", @"\bINSERT\b");
我做錯了什么嗎?
編輯:第二個已經在工作;)
第二種情況通過@"\\bINSERT\\b"
解決,如另一個答案中所述。
但是/b
在以下位置匹配:
單詞字符是[a-zA-Z0-9_]
的一個,因此第一種情況無法通過在@
前面加上前綴以轉義\\b
字符來解決,因為您正試圖匹配一個非單詞字符( @
)。
更新:第一種情況可以通過否定的后向聲明來解決,也可以通過使用否定的詞邊界\\B
來解決,從而使語法更加簡潔( @"\\B@p1\\b"
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.