RegEx для поиска различных форматов строки - PullRequest
3 голосов
/ 12 мая 2019

У меня есть два регулярных выражения:

([^.]*string)
((?<![.]\.)string)

Обе работы. Но я не хочу искать строку, в которой есть точка.

1) .string

2) string

Для первого регулярного выражения оно соответствует остальной части строки, кроме точки.

Второй полный матч

регулярное выражение совпадает с обоими.

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

Ответы [ 2 ]

3 голосов
/ 12 мая 2019

Если мы хотим передать все, кроме . , мы будем передавать символы новой строки с выражением, таким как:

([\s\S]*?)(\.?)
([\w\W]*?)(\.?)
([\d\D]*?)(\.?)

Демо .

enter image description here

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Если мы хотим найти экземпляры string без точки, такой как .string или .string. или .string ", тогда мы можем просто перечислить их в выражении, похожем на :

 ([\s\S]*?)(\sstring|\x22string\x22|\x27string\x27)?
 ([\w\W]*?)(\sstring|\x22string\x22|\x27string\x27)?
 ([\d\D]*?)(\sstring|\x22string\x22|\x27string\x27)?

enter image description here

enter image description here

0 голосов
/ 12 мая 2019

Попробуйте это регулярное выражение:

((?<!\.)string)

Использует негативный взгляд.

...