Удалить точку из хештега Regex
Я использую KILabel для своего проекта Swift, чтобы преобразовать хэштеги в ссылки. Моя проблема в том, что функция регулярного выражения, которую я сделал, также захватывает точку. Например, если пользователь пишет #18.3, я хотел бы захватить только # 18
Я попробовал кое-что, чтобы сократить хэштег в какой-то момент, но безуспешно.
regex = [[NSRegularExpression alloc] initWithPattern:@"(#+[\\S\\_]+)?" options:0 error:&error];
У вас есть идеи о том, как я могу это сделать?
1 ответ
Решение
Регулярное выражение у вас есть совпадения 1+ #
символы и затем 1 или более любых непробельных символов.
Чтобы остановить сопоставление до первой точки, используйте
@"#[^\\s.]+"
Если внутри могут быть точки, используйте
@"#[^\\s.]+(?:\\.[^\\s.]+)*"
подробности
#
- а#
голец[^\s.]+
- один или несколько символов, кроме пробелов и.
(?:\.[^\s.]+)*
- ноль или более повторений\.
- точка[^\s.]+
- 1 или более символов, кроме пробелов и.
,