Tam dize olup olmadığını kontrol etmek Regex

3 Cevap php

Ben tam bir dize maç Regex veya herhangi iyi bir yöntem önerdi kullanarak başka bir dize olup olmadığını denetlemek için bir yol arıyorum. Ben bir dize başında ya da sonunda bir boşluk ya da başka herhangi bir sözcük olmayan karakter eşleştirmek için regex söyle anlıyorum. Ancak, ben bunu kurmak için tam olarak nasıl bilmiyorum.

Search String: t

String 1: Hello World, Nice to see you! t
String 2: Hello World, Nice to see you!
String 3: T Hello World, Nice to see you!

Ben arama dizesini kullanabilir ve String 1, dize 2 ve String 3 karşılaştırabilirsiniz ve yalnızca String 2 değil dize 1 ve String 3 olumlu bir maç olsun ama istiyorum.

Requirements:
Search String may be at any character position in the Subject.
There may or may not be a white-space character before or after it.
I do not want it to match if it is part of another string; such as part of a word.

For the sake of this question: I think I would do this using this pattern: /\bt\b/gi

/\b{$search_string}\b/gi

Does this look right? Can it be made better? Any situations where this pattern wouldn't work?
Additional info: this will be used in PHP 5

3 Cevap

Sizin öneri /\bt\b/gi çalışmak ve muhtemelen gitmek için yol olacaktır. Doğru \b sözcük sınırları için kullandım. Her iki durumda tüm maçları bulacaksınız küresel ve harf duyarsız düzenleyiciler kullanarak ediyoruz. Basit, yalındır, temiz. Zaten ile geldim ne daha bak.

Bana iyi görünüyor. Bunu tam olarak neye ihtiyacınız olduğundan emin olmak için the \b assertion tam anlamını kontrol etmek isteyebilirsiniz.

Gerçekten bu model daha ayrıntılı açıklama olmadan "işe yaramaz", ama \b sizin testcases iyi çalışması için herhangi bir durum isim olamaz.

Eski söyleyerek göre, bir adam, bir belgeli bir ifade vermek ve o bir gün için mutlu olduğunu, normal bir ifade yazmak için onu öğretmek ve o "regulato denemek, bir ömür boyu (ya da bu yönde bir şey) için mutlu "r

Bu Reg exp ihtiyaçları için bir GUI ve bazı oldukça iyi örnekler sağlar.