[英]In FreeMarker, how do I automatically convert a custom object (e.g. java.awt.Color) to a particular String value (e.g. HTML hex color)?
[英]Check if string contains a particular digit only (e.g. “111”)
需要確定給定的字符串是否僅包含特定的數字 - 例如“111”,“2”,“33”應該返回true。
“12”應該返回false。
空字符串(“”)也應該返回true。
該字符串僅包含數字,不包含其他字符。
寫了一個似乎有用的丑陋Java正則表達式,但不禁認為它應該以更短的方式編寫:
str.matches("1*|2*|3*|4*|5*|6*|7*|8*|9*|0*")
有沒有更簡單,更優雅的方式來做到這一點,避免逐個列出所有數字?
您可以使用此正則表達式,它使用組來捕獲第一個數字,然后使用反向引用來確保以下數字全部相同,
^(\d)?\1*$
說明:
^
- 字符串的開頭 (\\d)?
- 匹配一個數字並捕獲group1和?
使其成為允許匹配空字符串的可選項。 \\1*
- 匹配相同的數字零次或多次 $
- 字符串結束 Java代碼,
List<String> list = Arrays.asList("5","5555","11111","22222","1234", "");
list.forEach(x -> {
System.out.println(x + " --> " + x.matches("(\\d)?\\1*"));
});
打印,
5 --> true
5555 --> true
11111 --> true
22222 --> true
1234 --> false
--> true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.