[英]java regular expression optional characters
我無法正常使用正則表達式。
正則表達式為:
([0-9]m)* ([0-9]f)*
“ m”或“ f”之前必須有一個數字,但“ m”或“ f”是可選的。 示例如下:
1m 2f
1m
6f
我做錯了什么?
*
表示與上一個標記匹配0次或更多次,這看起來與您想要的不一樣。
這些應該可以幫助您構建所需的正則表達式:
?
表示0或1個匹配項。 |
交替。 (?:...)
用於非捕獲組。 ^
和$
錨定在字符串的開頭和結尾。 知道了這一點,我想您也許可以自己找到一個解決方案,但是為了完整起見,我將展示一個可能的解決方案。
您的問題不是很清楚,所以我將假設您希望以下內容匹配:
1m 2f
1m
6f
0m
並且您希望以下內容不匹配:
1
m
11m
1m 1m
2f 3m
1m 2f
"1m 2f"
如果這些假設不正確,請使您的問題更加清楚。
基於這些假設,請嘗試以下操作:
^[0-9]m(?: [0-9]f)?$|^[0-9]f$
如果您還希望2f 3m
匹配,請使用以下命令:
^[0-9]m(?: [0-9]f)?$|^[0-9]f(?: [0-9]m)?$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.