我想這個pattron幫助使用正則表達式
field-122 <--the number could be into 0 to 999
創建正則表達式我開發這個正則表達式
Regex.Replace(htmlString, "field-*([0-9]|[1-9][0-9]|[1-9][0-9][0-9])", "|", RegexOptions.Singleline);
但失敗時,它更是2位的數字。表達式中出現了什麼問題
我想這個pattron幫助使用正則表達式
field-122 <--the number could be into 0 to 999
創建正則表達式我開發這個正則表達式
Regex.Replace(htmlString, "field-*([0-9]|[1-9][0-9]|[1-9][0-9][0-9])", "|", RegexOptions.Singleline);
但失敗時,它更是2位的數字。表達式中出現了什麼問題
試試這個關於大小
/field-[1-9]?[0-9]{1,2}/
如果C#正則表達式不支持大括號語法,這也應該起作用。
/field-[1-9]?[0-9]?[0-9]/
如果你想任意長的數字,你可以使用
/field-[1-9]?[0-9]+/
僅供參考,?
意味着零個或一個,+
意味着一個或多個,並{n,m}
意味着至少n並且最多爲m。
我不確定,但是您不是在搜索單詞測試,而是在搜索0或更多-
's。號碼捕獲部分過於複雜。嘗試:
"fieldText-(\\d{1,3})"
最好的版本,我們已經集體想出是:
field-(0|[1-9]\d{0,2})
這基本上是@ PaulPRO在通過自己修改的另一個線程評論貢獻,以反映OP更新了需求(字段而不是fieldText)。
這些值:
field-122
field-1
field-55
field-999
field-0
但這些值:
field-001
field-01
field-0
field--
field---
field--anything you want here
部分匹配:
anything you want herefield-123
如果你想避免fieldText-01,那麼你會想添加一個負面的lookahead。 '「fieldTest - (?!0 \ d)(\\ d {1,3})」' –
只要輸入有效但它允許001和01,這是正確的。基本上從零開始的數字。取決於這是否是一個有效的選擇? – rtpHarry
我懷疑這是一個問題,但你永遠不知道人們在用什麼東西。 – Paulpro