[英]regular expression to match a certain pattern and a certain number of values in between
抱歉標題令人困惑...我正在編輯我繼承的 android 應用程序的簡單 java 方法。 目前是這樣的:
String id = "\\border_3_4_5_.*\\b";
匹配:
order_3_4_5_anything
現在我想更新它以便匹配,以便它可以匹配任何值 5、6、7、8 而不僅僅是 5,並且 rest 保持不變。
order_3_4_[5 or 6 or 7 or 8]_
我嘗試了以下方法:
String id = "\\border_3_4_[5|6|7|8]_.*\\b";
String id = "\\border_3_4_(5|6|7|8)_.*\\b";
String id = "\\border_3_4_[5,6,7,8]_.*\\b";
但無法讓它工作。
如果我正確理解了您的要求,那就是匹配以下輸入,
order_3_4_5_
order_3_4_6_
order_3_4_7_
order_3_4_8_
因此,上述適當的正則表達式是,
String pattern = "order_3_4_[5|6|7|8]_.*"
您必須簡單地去掉正則表達式開頭和結尾的“\b”。 不太清楚你為什么在那里使用那些反斜杠。 您給出的正則表達式將匹配以下示例輸入,
\border_3_4_5_\b
\border_3_4_6_\b
\border_3_4_7_\b
\border_3_4_8_\b
這是因為在您的正則表達式中,“\”相當於一個反斜杠,因為第一個反斜杠是為了轉義第二個反斜杠。 同樣,在末尾,“\b”相當於一個后跟 b 的反斜杠,同樣因為第一個反斜杠是為了轉義第二個反斜杠。
你可以在這里測試這些正則表達式
希望這個答案對您有所幫助,如果確實如此。 如果您將我的回答標記為“已接受”,我將不勝感激。 再會!
正如@idl99 所說,我不確定\\b
,但您可以使用其中任何一種正則表達式模式:
order_3_4_(5|6|7|8)_.*
order_3_4_[5678]_.*
order_3_4_[5-8]_.*
旁注:您可以在此處測試您的正則表達式: https://regex101.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.