Почему регулярка берет лишние элементы?
Вложений: 1
Есть текст :
#Yandex #Apple Chainlink выпустил новую платформу для разработчиков #Functions, которая предоставляет бесплатный доступ к готовым функциям оракулов, упрощая процесс создания децентрализованных приложений на #Blockchain #Chainlink #девелопмент Есть регулярка : https://regex101.com/r/OsaFNu/1 Почему регулярка берет еще и #Apple , мне нужно чтоб брало только #Functions См скрин: Вложение 4900 Не могу добавить справа вот что : слева от искомого хештега ещё должно стоять: пробел словоБезСимвола# пробел |
Если регулярка что-то "берет" - значит она так написана. Это аксиома.
Для получения правильной - нужно показать примеры строк и что из них хочется получить в итоге.... |
Потому, что стоит флаг g
|
Цитата:
const str = '#Yandex #Apple Chainlink выпустил новую платформу для разработчиков #Functions, которая предоставляет бесплатный доступ к готовым функциям оракулов, упрощая процесс создания децентрализованных приложений на #Blockchain #Chainlink #девелопмент' const re = /(?<=(?:^|\s)[a-zа-я]+\s)#[a-z]+/gi alert(str.match(re)) |
Вложений: 1
Цитата:
Вложение 4901 Сейчас так пробую: /(?!#[a-zA-Z0-9_]+\s+)(#[a-zA-Zа-яА-Я]+[,.!:?\s]*)(?=\s[a-zA-Zа-яА-Я])/g Но если в тексте символ запятой убираю после #Functions, -> #Functions то не ничего не находит, хотя по идее я в регулярке прописал что один из символов ,.!:?может быть, а может и не быть |
mik888em,
const str = '#Yandex #Apple Chainlink выпустил новую платформу для разработчиков #Functions, которая предоставляет бесплатный доступ к готовым функциям оракулов, упрощая процесс создания децентрализованных приложений на #Blockchain #Chainlink #девелопмент' const re = /(?<=\s\S+\s)#\S+\b/ alert(str.match(re)) |
Цитата:
Впереди него слово без #... |
Дело в том что нужно более точное соответствие, потому что в вашей регулярке правая часть не прописана (что идёт после знаков препинания), а она должна быть прописана для точного соответствия (мне так нужно). Вот как тут на скрине:
![]() Вот регулярка со скрина: /(?!#[a-zA-Zа-яА-Я0-9_]+\s+)(#[a-zA-Zа-яА-Я]+)[,.!:?\s]?(\s[a-zA-Zа-яА-Я])/g Но опять же, как только запятую из текста после #Functions мне стоит убрать и тогда регулярка не видит #Functions А если запятую ставлю, то регулярка захватывает с искомым еще и лишние символы . Вот что берет: #Functions, кто есть почему-то захватывает , к |
mik888em,
чем не устраивает #6 ? |
Цитата:
|
Часовой пояс GMT +3, время: 22:59. |