2015-08-11 30 views
5

Ben [\@A-Za-z1-9_\.\s\+\-\*\\]* sonunda şöyle $1, $2, $3 and $4 kullanan dosyasına yazılan alır benim programda bir dize ile değiştirilecektir şu normal ifadeyiBoşluk normal ifadede berbat olmak

var string_regex=(\s*[\{\[]?\%?[\s]*)[\@A-Za-z1-9_\.\s\+\-\*\\]*([\s\*]*=[\s\*\$]*[\{\"]?)[\@A-Za-z1-9_\.\s\+\-\*\\]*(\s*[\}\"]?)([\}\]\%\s]*) 

var:

val newLineToBeReplacedOrAdded = "$1" + "set type cookies" + "$2" + "sugar cookies" + "$3" + "$4" 

ben bunu test ediyorum dize

{% set type cookies = "sugar cookies" %} 
olduğunu Uygun şekilde eşleştiği

. Ancak, yaşadığım sorun ben dosyaya dışarı yazarken, aralık Çok küçük fark var ama ben ben

{% set type cookies= "sugar cookies" %} 

ile bitirmek böylece eşittir işaretinin yanında korunmuş olmamasıdır Bunu önlemek için ifadenin nasıl daha fazla geliştirileceğine dair geribildirimleri takdir ediyorum.

Here is a link to the regex!

Ben O boşluk .Sağlıklı demo tüketmek değil önceki grubuna sormak zorunda kalacak [\@A-Za-z1-9_\.\s\+\-\*\\]*

cevap

3

before = uzay dışı açgözlü maç yaptı.

[\@A-Za-z1-9_\.\s\+\-\*\\]*? 

https://regex101.com/r/yN4mX0/3

+0

Teşekkürler! Açgözlü olmayan maçla yeni bir şeyler öğrendim :) Ve sorunun nerede olduğunu belirttiğiniz için teşekkür ederim. Diğerlerine de yardımcı olmalı – Zee

+0

@vks - yakalama grubuna göre, bu yıldızları dahil etmek isterler. Yani örnek için teknik olarak geçerli. – lintmouse

3
(\s*[\{\[]?\%?[\s]*)[\@A-Za-z1-9_\.\s\+\-\*\\]*[^\s]([\s\*]*=[\s\*\$]*[\{\"]?)[\@A-Za-z1-9_\.\s\+\-\*\\]*(\s*[\}\"]?)([\}\]\%\s]*) 

               ^^ 

ile özel olarak onun bir sorun inanıyoruz.

https://regex101.com/r/yN4mX0/2

veya lookbehind kullanımını

(\s*[\{\[]?\%?[\s]*)[\@A-Za-z1-9_\.\s\+\-\*\\]*(?<!\s)([\s\*]*=[\s\*\$]*[\{\"]?)[\@A-Za-z1-9_\.\s\+\-\*\\]*(\s*[\}\"]?)([\}\]\%\s]*) 

               ^^ 

Bkz demo varsa.

https://regex101.com/r/yN4mX0/4

+0

Wow hızlı ve ne fantastik bir cevap oldu! Teşekkür ederim! – Zee

+0

@Zee whihc dili? – vks

+2

'[^ \ s]' ifadesine başka bir anlam verir. Bakınız [\ S] (https://regex101.com/r/yN4mX0/7) vs [(?

İlgili konular