Vinod Kc Ответов: 2

Как определить регулярное выражение, которое начинается с определенной позиции и заканчивается в другой конкретной позиции в строке ?


Всем привет,
У меня есть такая веревочка.
"Это пример строки с 215[145] - Microsoft Word"
И иногда есть возможность иметь такую строку.
"Это пример строки с 85-Microsoft Word"

В обоих случаях я хочу извлечь цифры. Чтобы быть точным, я хочу "215" из первой строки и "85" из второй строки.
Поэтому я планировал использовать регулярное выражение. Это мое псевдо регулярное выражение -
"Левая сторона строки должна быть пробелом, затем только ловите числа по крайней мере от одной цифры до максимум 3 digts, затем конечная позиция должна быть пробелом или знаком" [".
Как сказать regex, чтобы получить мою строку ?

Что я уже пробовал:

"\s[0-9]{1,3}[^[\s]]"

Richard MacCutchan

Так в чем же проблема, работает это или нет?

Vinod Kc

Привет, спасибо за ответ. Но он ловит пробел в начале строки. Как этого избежать ?
Я имею в виду, что теперь это результат - " 85 " и " 215"

Vinod Kc

Я получил это от RegexBuddy.
"\з\д+([\^[\с])"

2 Ответов

Рейтинг:
2

OriginalGriff

Попробуй:

(?<=^[^\d]*)\d+(?=[^\d]*.*$)

Он рассматривает все, что до первой цифры, как исключенный префикс, соответствует всем смежным цифрам, а затем рассматривает остальную часть строки как исключенный суффикс.


Vinod Kc

Спасибо за ответ, но он не работает в RegexBuddy.

OriginalGriff

Он работает для меня, когда я тестирую его в Expresso - так что Проверьте свои данные и точно, как вы их используете.

Рейтинг:
1

Patrice T

Это не решение, а всего лишь несколько ссылок, которые помогут вам понять/построить / отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
Это показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение:
Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]


Vinod Kc

Привет, спасибо за ссылки. Но Debuggex кажется сложным. Во всяком случае, я играю с ним. Спасибо.