Возвращать уникальные цифры строки формата времени с помощью регулярных выражений - PullRequest
0 голосов
/ 14 июня 2019

Необходимо создать шаблон регулярного выражения, который будет возвращать уникальные цифры до или после символа:, используя String.match. Он должен возвращать только цифру, а не символ:. PS: я знаю, что есть другие (возможно, более простые) способы сделать это, но я хочу использовать регулярные выражения в учебных целях

let s;
let regex = /(^\d:)(:\d$)/g // I tried this, off course it didn't work

s = '12:34'
s.match(regex) // return null

s = '1:34'
s.match(regex) // return [1]

s = '12:4'
s.match(regex) // return [4]

s = '1:4'
s.match(regex) // return [1,4]

Ответы [ 3 ]

1 голос
/ 14 июня 2019

Попробуйте использовать это:

let regex = /(((?<=:)\d(?!\d))|((?<!\d)\d(?=:)))/g

Это будет соответствовать шаблонам, которые вы хотите!

Вот ссылка для Regex.

let s;
let regex = /(((?<=:)\d(?!\d))|((?<!\d)\d(?=:)))/g

s = '12:34'
console.log(s.match(regex)) // return null

s = '1:34'
console.log(s.match(regex)) // return [1]

s = '12:4'
console.log(s.match(regex)) // return [4]

s = '1:4'
console.log(s.match(regex)) // return [1,4]
0 голосов
/ 14 июня 2019

Пример сделан на JavaScript.Второе регулярное выражение является самым простым, оно соответствует цифре, за которой следует двоеточие, за которым следует цифра (вы можете использовать это с флагом g, если в вашем тексте более одного вхождения).

1-е регулярное выражение соответствует всей строке, и МОЖЕТ иметь один или несколько символов перед 1-й цифрой и один или несколько символов после 2-й.Это захватит только одно вхождение для всей строки.

let regex1 = /^.*(\d):(\d).*$/;
let regex2 = /(\d):(\d)/;

console.log("Make sure the entire string only contains one instance");
['12:34', '1:34', '12:4', '1:4' ].forEach( (s) => console.log(s.match(regex1) ));
console.log("Match the first instance found");
['12:34', '1:34', '12:4', '1:4' ].forEach( (s) => console.log(s.match(regex2) ));
0 голосов
/ 14 июня 2019

Не уверен, что вы подразумеваете под "уникальным".
Но если вы хотите просто получить числа, вы можете использовать + или * квантификаторы.

/^(\d+):(\d+)$/

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