Что нового

[RegExp] Нужно убрать фразу в скобках с конца строки

konokrad666

Новичок
Сообщения
22
Репутация
0
Я использую (.+)\s\(.+\)
но, так как в строках встречаются разные символы, в том числе пробелы, это не работает.
Формат фразы в конце всегда одинаков, т.е. пробел и название страны в скобках.

пример: "eriut@#$%^&*()_+\|asfd`/ sdf23 (Canada)"
нужно получить: "eriut@#$%^&*()_+\|asfd`/ sdf23"

Заранее спасибо.
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
Код:
$str=StringRegExpReplace("eriut@#$%^&*()_+\|asfd`/  sdf23 (Canada)",'(\(\S+)(?=$)','')
MsgBox(32,'',$str)
 

Naisho

Знающий
Сообщения
86
Репутация
12
Код:
$str=StringRegExpReplace("eriut@#$%^&*()_+\|asfd`/  sdf23 (Canada)",'(\h\(\H+\z)','')
MsgBox(32,'',$str)


Хмм... моя конструкция медленнее на примерно 16%...
Код:
$t=TimerInit()
for $i=1 To 100000
$str=StringRegExpReplace("eriut@#$%^&*()_+\|asfd`/  sdf23 (Canada)",'(\(\S+)(?=$)','')
Next
$dt1 =TimerDiff($t)

$t=TimerInit()
for $i=1 To 100000
$str=StringRegExpReplace("eriut@#$%^&*()_+\|asfd`/  sdf23 (Canada)",'(\h\(\H+\z)','')
Next
$dt2 =TimerDiff($t)
MsgBox(32,'',$dt1/$dt2)
 
Верх