Regex, hər bir sözün ilk harfi, eyni zamanda xüsusi xarakterdən sonra bir çarx kimi düzəldir

Hər bir sözün ilk hərfini #(\s|^)([a-z0-9-_]+)#i bu #(\s|^)([a-z0-9-_]+)#i , xüsusi bir işarədən sonra, çizgi (-)

İndi göstərir:

 This Is A Test For-stackoverflow 

Və bunu istəyirəm:

 This Is A Test For-stackoverflow 

Mənim üçün hər hansı bir təklif / nümunə?

Mən peşəkar deyiləm, buna yalnız mənim üçün anlamaq üçün cəhd edin.

23
06 июня '11 в 14:38 2011-06-06 14:38 Simmer 6 iyun 'da 14:38' də təyin olunub 2011-06-06 14:38
@ 6 cavablar

Söz sərhədləri üçün +1, lakin müqayisə edilən Javascript həlli. Bu sahibləri izah edir:

 var re = /(\b[az](?!\s))/g; var s = "fort collins, croton-on-hudson, harper ferry, coeur d'alene, o'fallon"; s = s.replace(re, function(x){return x.toUpperCase();}); console.log(s); // "Fort Collins, Croton-On-Hudson, Harper Ferry, Coeur D'Alene, O'Fallon" 
18
25 апр. Cavab 25 Mart tarixində NotNedLudd tərəfindən verilir 2015-04-25 02:00 '15 'də 2:00' də 2015-04-25 02:00 'də

Sadə bir həll söz sərhədlərini istifadə etməkdir:

 #\b[a-z0-9-_]+#i 
border=0

Alternativ olaraq, yalnız bir neçə simvol birləşdirə bilərsiniz:

 #([\s\-_]|^)([a-z0-9-_]+)#i 
18
06 июня '11 в 14:42 2011-06-06 14:42 Cavab 06.06.2011 tarixində saat 14:42 da Kobi tərəfindən verilir. 2011-06-06 14:42

Əslində, məsələn, paytaxtdan fərqli olan ilk məktub ilə üst-üstə düşən tam simvolu birləşdirməyə ehtiyac yoxdur:

 '~\b([az])~' 
5
06 июня '11 в 14:59 2011-06-06 14:59 Cavab 06 iyun 2011-ci il saat 14: 06-da Anubhava tərəfindən verilmişdir 2011-06-06 14:59

Burada mənim python həll edir

 >>> import re >>> the_string = 'this is a test for stack-overflow' >>> re.sub(r'(((?<=\s)|^|-)[az])', lambda x: x.group().upper(), the_string) 'This Is A Test For Stack-Overflow' 

Burada "müsbət baxımdan" oxuyun: https://www.regular-expressions.info/lookaround.html

0
19 янв. Cavab verilir nmz787 Jan 19 2019-01-19 00:02 '19 'da 0:02' də 2019-01-19 00:02 'də

bunu edəcəyik

REAC De Boeremeakers

etibarən

Reac de boeremeakers

 (?<=\A|[ .])(?<up>[az])(?=[az. ]) 

istifadə

  Dim matches As MatchCollection = Regex.Matches(inputText, "(?<=\A|[ .])(?<up>[az])(?=[az. ])") Dim outputText As New StringBuilder If matches(0).Index > 0 Then outputText.Append(inputText.Substring(0, matches(0).Index)) index = matches(0).Index + matches(0).Length For Each Match As Match In matches Try outputText.Append(UCase(Match.Value)) outputText.Append(inputText.Substring(Match.Index + 1, Match.NextMatch.Index - Match.Index - 1)) Catch ex As Exception outputText.Append(inputText.Substring(Match.Index + 1, inputText.Length - Match.Index - 1)) End Try Next 
0
17 сент. Sedecimdies tərəfindən verilmiş cavab 17 sentyabr 2013-09-17 12:40 '13 'da 12:40' de 2013-09-17 12:40

#([\s-]|^)([a-z0-9-_]+)#i - (\s|^) kosmik xarakterinə ( \s ) və ya simli ( ^ ) başlanğıcını #([\s-]|^)([a-z0-9-_]+)#i . [\s-] \s a dəyişdirdiyiniz zaman hər hansı bir boşluq və ya dash xarakterinə uyğun gəlir.

0
06 июня '11 в 14:42 2011-06-06 14:42 Cavab Şadikka 06 iyun 'da saat 14: 42-də verilir 2011-06-06 14:42

Tags tags ilə bağlı digər suallar və ya bir sual