Все зависит от того, что вы подразумеваете под числом, и в каком контексте разрешены цифры. Я предполагаю, что числа, которым предшествует 0x, являются шестнадцатеричными числами и, следовательно, могут также содержать A-F и a-f.
С учетом этой тестовой строки: "a 012 0xa 4_56 num:8 42!"
Это регулярное выражение соответствует "012"
, "0xa"
, "4"
, "56"
, "8"
и "42"
:
(0x[\dA-Fa-f]+|\d+)
Это регулярное выражение соответствует "012"
, "0xa"
, "8"
и "42"
:
\b(0x[\dA-Fa-f]+|\d+)\b
Это регулярное выражение соответствует "0xa"
, "8"
и "42"
:
\b(0x[\dA-Fa-f]+|[1-9]\d*)\b
Это регулярное выражение соответствует "012"
и "0xa"
:
(?<=\s)(0x[\dA-Fa-f]+|\d+)(?=\s)
Это регулярное совпадение совпадений "0xa"
:
(?<=\s)(0x[\dA-Fa-f]+|[1-9]\d*)(?=\s)