簡體   English   中英

用正則表達式完全匹配一次字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM