![](/img/trans.png)
[英]Can I make a regex match each character in a class EXACTLY ONCE - even when characters REPEAT in the class?
[英]Match a character exactly once with regex
如何在Java中將一個字符與正則表達式完全匹配一次? 假設我要查找的字符串恰好包含數字3的一倍,並且在哪里都無所謂。
我嘗試使用“。* 3 {1}。*”進行此操作,但是很明顯,這也將與我指定的“ 330”匹配,因為我不在乎它是什么字符。 我怎樣才能解決這個問題?
^[^3]*3[^3]*$
匹配(不三個),然后匹配三個,然后(不匹配三個)。
編輯:在開始和結束處添加^
和$
。 這將迫使正則表達式匹配整行。 謝謝@Bobbyrogers和@Mindastic
非正則表達式解決方案:
int index = s.indexOf('3');
boolean unique = index != -1 && index == s.lastIndexOf('3');
基本上,如果第一次出現和最后一次出現在同一位置並且存在於字符串中(不是-1),則該字符是唯一的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.