У меня есть текст вроде
number1234567890
Я хотел выбрать первую цифру после слова, в этом случае это приведет к 1
.
Пока что я получил результат r1
с использованием регулярного выражения (\D)(\d)
.
Надеюсь, что кто-то может помочь. Заранее спасибо.
Если вы используете такой язык, как Java или C#, тогда есть хороший вариант разделения строк. Вы можете разделить на обзор (?<=\D)(?=\d)
. Затем проверьте вторую строку, если она существует, и возьмите первую букву. Если второй строки нет, значит, в вашем тексте нет чисел.
Используйте (?<=\D)\d
. Или ^\D*\K\d
(PCRE) или (?<=^\D*)\d
(.NET). Кроме того, вы можете просто использовать \d
, если можете выполнить операцию сопоставления Один (например, str.match(/\d/)
в JS, preg_match('~\d~', $s, $match)
в PHP и т. д.)
извините, ребята, что не упомянули конкретный язык, на самом деле я использую его для доступа, не знал, что есть различия, и я предполагаю, что поэтому я не получил правильного результата, я использовал JS раньше из ссылка на сайт. Я попробовал все предложения, и ответ Виктора (?<=\D)\d
или ^\D\K\d
дал правильный ответ
@ WiktorStribiżew, не могли бы вы ответить на него официально, чтобы я мог отметить его как ответ. Спасибо за все предложения.
Что именно сработало для вас? Я добавил много альтернатив.
@ WiktorStribiżew (?<=\D)\d
и ^\D\K\d
(PCRE) у меня работают.
Я выложил с пояснениями.
Вы можете использовать
(?<=\D)\d
См. демонстрация регулярного выражения.
(?<=\D)
- это положительный просмотр назад, который требует, чтобы символ, отличный от цифры, появлялся сразу слева от текущего местоположения, а затем \d
будет соответствовать цифре, которая появляется сразу справа.
Или вариант только PCRE:
^\D*\K\d
См. демонстрация регулярного выражения.
Он будет соответствовать началу строки, затем любым символам 0+, кроме цифры, затем \K
сбросит буфер сопоставления, удалив весь текст, сопоставленный на данный момент, и \d
сопоставит (первую) цифру.
какой язык программирования?