regex Topic is solved

Get help with using AutoHotkey (v1.1 and older) and its commands and hotkeys
inseption86
Posts: 203
Joined: 19 Apr 2018, 00:24

regex

15 Jun 2021, 06:34

hi how do i know the second number(10)?

Code: Select all

с.«скАЯ ФЕДЕРА
СЕРТИ*ИКАТ
О ВЛАДЕНИИ РУССКИМ ЯЗЫКОМ,
ЗНАНИИ ИСТОРИИ РОССИИ
И ОСНОВ ЗАКОНОДАТЕЛЬСТВА
РОССИЙСКОЙ ФЕДЕРАЦИИ
ll Н ll lll Ш Н
010431058001
Настоящий сертификат удостоверяет, что
ЖАББОРАПОВ ШЕРААПЛИ АБДУАПВАХОБОВИЧ
JABBORRRROV SHEGFGRRALI ABDUVAkFFGHOBOVICH
сдал(а) экзамен
и подтвердил(а)
владение русским языком,
знание истории России
и основ законодательства Российской Федерации
Город
Москва
Дата выдачи
12.06.2021
Регистрационный
000221995001
Срок действия до
12.06.2024
Экзамен проведен
ФГБОУ ВО 
НА УРОВНЕ, СООТВЕТСТВУЮЩЕМ
РАЗРЕШЕНИЯ НА РАБОТУ
Руководитель
рд 30
центр
ктихи

Code: Select all

RegExMatch(text, "\d{10,}", match_sert) 
i get first 010431058001, but i want if match_sert = 0, to match_sert :- match_sert2
User avatar
mikeyww
Posts: 26888
Joined: 09 Sep 2014, 18:38

Re: regex

15 Jun 2021, 06:42

Code: Select all

num := [], pos := 0
While pos := RegExMatch(text, "\d{10,}", ten, pos ? pos + StrLen(num[num.Count()]) : 1)
 num.Push(ten)
MsgBox, 64, Second number, % num.2
User avatar
boiler
Posts: 16931
Joined: 21 Dec 2014, 02:44

Re: regex

15 Jun 2021, 06:48

Or:

Code: Select all

RegExMatch(text, "\d{10,}.*?\K\d{10,}", match_sert)
inseption86
Posts: 203
Joined: 19 Apr 2018, 00:24

Re: regex

15 Jun 2021, 07:39

boiler wrote:
15 Jun 2021, 06:48
Or:

Code: Select all

RegExMatch(text, "\d{10,}.*?\K\d{10,}", match_sert)

but sometimes I have only one number in the text (10)
User avatar
boiler
Posts: 16931
Joined: 21 Dec 2014, 02:44

Re: regex  Topic is solved

15 Jun 2021, 07:46

Code: Select all

if !RegExMatch(text, "\d{10,}.*?\K\d{10,}", match_sert)
	RegExMatch(text, "\d{10,}", match_sert)
inseption86
Posts: 203
Joined: 19 Apr 2018, 00:24

Re: regex

15 Jun 2021, 08:31

boiler wrote:
15 Jun 2021, 07:46

Code: Select all

if !RegExMatch(text, "\d{10,}.*?\K\d{10,}", match_sert)
	RegExMatch(text, "\d{10,}", match_sert)
Thansk
teadrinker
Posts: 4326
Joined: 29 Mar 2015, 09:41
Contact:

Re: regex

15 Jun 2021, 09:11

Or like this:

Code: Select all

RegExMatch(text, "(\d{10,})(?(?=.*(?1))(*SKIP)|(*ACCEPT)).*?\K(?1)", m)
MsgBox, % m
User avatar
boiler
Posts: 16931
Joined: 21 Dec 2014, 02:44

Re: regex

15 Jun 2021, 09:17

Nice. I knew someone would be able to do it in a single pattern. :thumbup:
User avatar
mikeyww
Posts: 26888
Joined: 09 Sep 2014, 18:38

Re: regex

15 Jun 2021, 09:59

I concede to the authorities! :crazy:
teadrinker
Posts: 4326
Joined: 29 Mar 2015, 09:41
Contact:

Re: regex

15 Jun 2021, 10:38

Or even easier:

Code: Select all

RegExMatch(text, "(\d{10,})(?(?!.*(?1))(*ACCEPT)).*?\K(?1)", m)
MsgBox, % m
:)

Return to “Ask for Help (v1)”

Who is online

Users browsing this forum: Frogrammer, gongnl and 280 guests