Regexp ile eşleşen dizileri boşluklarla çevrili dizenin ortasında, sonunda veya başında veya dizideki tek şeyle eşleştirmek için bulmak istiyorum.Perl regexp kullanarak dizgenin sonuna/sonuna dizilerle boşluklu OR kelimesi nasıl eşlenir?
Örnek: dizisinin çok 'qwe45rty'
biz aradığınızı olduğunu varsayalım. Bunları dizeleri tümü üzerinde olumlu elde edebilmek istiyorum:
'qwe45rty'
'qwe45rty blabla'
'smth qwe45rty blabla'
'smth qwe45rty'
' qwe45rty '
Ama bunların hiçbiri:
'aaqwe45rty'
'qwe45rtybb'
'aaqwe45rtybb'
ne ile geldi Best Bunu beğenme:
if (($a =~ /\s+$re\s+/) or
($a =~ /^$re\s+/) or
($a =~ /\s+$re$/) or
($a =~ /^$re$/) )
{
# do stuff
}
bunun en iyi yolu olamaz :)
Herhangi bir öneriniz var mı? Örneğin
$a =~ /(?:\A|\s)$re(?:\s|\Z)/;
:
İntikamın içinde veya üstünde olduğunu biliyorum, ama dize tutturduğunu sanıyordum^'ve' $ 'bu şekilde kullanılamaz. – bazzilic
@bazzilic Herhangi bir problem yaşamadan çapa kullanıyorum. Tek sorun, eşleşen amaçlar için parantez kullanıyorsanız, parantez sayınıza eklenecektir. Bu soruna geçici bir çözüm bulmak için '(?:^| \ S +)' kullanabilirsiniz. –
Çözümünüzü aldım, dize çapalarının Perl regexlerinde diğer kontrol dizileri olarak kullanılabileceğine işaret ettiğin için teşekkürler! – bazzilic