Что означает /([^.]*)\.(.*)/? - PullRequest
       79

Что означает /([^.]*)\.(.*)/?

8 голосов
/ 04 декабря 2009

Когда я что-то искал, я нашел ответ на этот вопрос на этом сайте. 2 ответа содержат

/([^.]*)\.(.*)/

на их ответ. Вопрос находится по адресу Найти и заменить jquery . Я новичок в JavaScript, так что мне интересно, что это значит? Спасибо.

Ответы [ 11 ]

30 голосов
/ 04 декабря 2009
/([^.]*)\.(.*)/

Давайте разберем его.Начальная и конечная косая черта являются разделителями и обозначают начало и конец регулярного выражения.

Затем существует группа в скобках: ([^.]*) Круглые скобки предназначены только для группировки строки.Квадратные скобки обозначают «группу символов», что означает, что любой символ внутри этой группы принимается на его место.Однако эта группа отрицается первым символом ^, который меняет его значение.Поскольку единственным символом рядом с отрицанием является точка, это соответствует одному символу, который не является точкой.После квадратных скобок стоит * (звездочка), что означает, что квадратные скобки могут совпадать ноль или более раз.

Затем мы получим \..Это сбежавший период.Периоды в регулярных выражениях имеют особое значение (кроме случаев экранирования или в группе символов).Это соответствует буквальному периоду в тексте.

(.*) - это новая паратезированная подгруппа.На этот раз точка соответствует любому символу, и звездочка говорит, что она может повторяться столько раз, сколько необходимо.

В итоге, выражение находит любую последовательность символов (которая не является точкой), затемна один период, за которым снова следует любой символ.

Редактировать: Удалена часть о сокращении, так как это противоречит предполагаемой цели регулярного выражения.

8 голосов
/ 04 декабря 2009

Это регулярное выражение (оно соответствует непериодам, за которым следует точка, за которой следует что-нибудь (например, file.ext)) И ты должен бежать, а не ходить, чтобы узнать о них. Объяснение того, как работает именно это регулярное выражение, не поможет вам, так как вам нужно начать проще. Итак, начните с учебника регулярных выражений и возьмите Освоение регулярных выражений .

5 голосов
/ 04 декабря 2009

Оригинал: /([^.]*)\.(.*)/

Разделить это как:
[1] ([^.]*): в нем указано совпадение всех символов, кроме . [ period ]
[2] \.: соответствует периоду
[3] (.*): соответствует любому символу

так становится [1] Сопоставьте все символы, которые не являются . [ period ] [2], пока не найдете .[ period ], затем [3] соответствуют всем символам.

4 голосов
/ 04 декабря 2009

Все, кроме точки, за которой следует точка, за которой следует что-либо.

Вы можете проверить регулярные выражения на регулярном выражении

3 голосов
/ 04 декабря 2009

Это регулярное выражение, которое примерно ищет строку, которая не содержит точку, за которой следует точка, а затем строку, содержащую любые символы.

2 голосов
/ 04 декабря 2009

Это регулярное выражение, которое разбивает строку на две части: все до первого периода, а затем до остатка. Большинство механизмов регулярных выражений (включая Javascript) позволяют вам затем обращаться к этим частям строки отдельно (используя $ 1 для ссылки на первую часть и $ 2 для второй части).

2 голосов
/ 04 декабря 2009

Это регулярное выражение. Регулярные выражения являются мощными инструментами, если вы правильно их используете.

Это регулярное выражение извлекает имя файла и расширение из строки, которая выглядит как "file.ext".

1 голос
/ 04 декабря 2009

Это регулярное выражение генерирует два совпадающих выражения, которые можно получить.

Две части - строка перед первой точкой (которая может быть пустой) и строка после первой точки (которая может содержать другие точки).

Единственное ограничение ввода состоит в том, что он содержит хотя бы одну точку. Это будет соответствовать "." вопреки некоторым другим ответам, но восстановленные группы будут пусты.

1 голос
/ 04 декабря 2009

Это регулярное выражение с некоторым расширенным использованием.

Рассмотрим более простую версию: /[^.]*\..*/, которая такая же, как и выше, без скобок. Это будет соответствовать любой строке с хотя бы одной точкой. Когда добавляются круглые скобки и происходит совпадение, переменные \1 и \2 будут содержать совпадающие части из круглых скобок. У первого будет что-нибудь до первой точки. Вторая часть будет иметь все после первой точки.

Примеры:

input: foo...bar
\1: foo
\2: ..bar

input: .foobar
\1:
\2: foobar
0 голосов
/ 04 декабря 2009

Это регулярное выражение, которое в основном представляет собой набор символов, который используется для описания другого шаблона символов. Однажды я использовал регулярные выражения, чтобы найти адрес электронной почты внутри текстового файла, и их можно использовать, чтобы найти практически любой шаблон текста в большем теле текста, при условии, что вы правильно написали регулярное выражение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...