Что нового

Вывод символов до точки в слове

Feirman

Новичок
Сообщения
5
Репутация
0
Добрый день.
Сломал себе голову.
есть логины вида
yrt.ivanov
urth.petrov
yrnj.a.sidorov

нужно в переменную запихать префикс до точки
использовал выражение
$pre_user = StringRegExpReplace(@UserName, '^([^\\]*?)(?:\.[^.]+)?$', '\1')
но наткнулся на то что если в имени 2 и более точек, то выводит все до последней точки в имени
Как изменить выражение? или мб по другому это можно решить?
 

damien2008

Осваивающий
Сообщения
178
Репутация
34
Код:
#include <Array.au3>
#include <File.au3>

$String = "yrn.asdasd" & @CRLF & "yrnew.fds.asdasd" & @CRLF & " yrn..sdf.asdasd" & @CRLF & "534.fds.asdasd"

$aVars = StringRegExp($String, "(?mi)^([a-zA-Z0-9]+)(?:\.)", 3)
_ArrayDisplay($aVars)
Exit
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Ещё варианты
Код:
$str = "yrt.ivanov" & @CRLF & "urth.petrov" & @CRLF & "yrnj.a.sidorov"

; так
$pre_user = StringRegExpReplace($str, '([^.]+).*', '\1')
ConsoleWrite($pre_user & @CRLF)

; или так
$pre_user = StringRegExp($str, '([^.]+).*', 3)
#include <Array.au3>
_ArrayDisplay($pre_user)
 
Верх