1〜3桁の文字列を照合しようとしていますが、
例:
1
2
123
3
これは私が試したものです、
[\s]?[0-9]{1,3}[\s]?
これは一致しています、
123 ->a space after 123
あなたの質問は明確ではありませんが、あなたはその文字列を探しているようです
その場合、正規表現は^(?=.*\d)[\d\s]{3}$
です。Java文字列として:"^(?=.*\\d)[\\d\\s]{3}$"
。
説明:
^ # Start of string
(?=.*\d) # Assert that there is at least one digit in the string
[\d\s]{3} # Match 3 digits or whitespace characters
$ # End of string
これはあなたのために働くはずです
^\\d{1,3}$
。
説明
"^" + // Assert position at the beginning of the string
"\\d" + // Match a single digit 0..9
"{1,3}" + // Between one and 3 times, as many times as possible, giving back as needed (greedy)
"$" // Assert position at the end of the string (or before the line break at the end of the string, if any)
正規表現エンジンで単語境界メタ文字を使用できますか?これで試してください:\b\d{1,3}\b
最大3桁に一致するパターンで、先頭に空白があり、末尾に空白がない場合は、次のようになります^\s*\d{1,3}$
。
これは一致します:
1
2
123
3
ただし、末尾にスペースがある「123」とは一致しません。