比如我有一個文本:如何提高我的RegEx以獲取模式之前的文本?
Hello, my name is %{John}.
現在,我要採取一切文字%{John}
之前。對於這個我使用正則表達式旁邊:
.+?(?=(?<=%{)[^%]*(?=}))
它的工作原理,但它包含%{
這部分了。我不需要這樣。我如何獲取全文,但排除%{
?
比如我有一個文本:如何提高我的RegEx以獲取模式之前的文本?
Hello, my name is %{John}.
現在,我要採取一切文字%{John}
之前。對於這個我使用正則表達式旁邊:
.+?(?=(?<=%{)[^%]*(?=}))
它的工作原理,但它包含%{
這部分了。我不需要這樣。我如何獲取全文,但排除%{
?
謝謝!我會很快接受你的回答! –
這將返回'你好,我的%{名字}是''你好,我的%{姓名}是%{John} .'輸入。請參閱http://ideone.com/R2Hmm4。 –
@ J.Doe剛剛做了一個小小的更新,看看。而且不急於接受答案(但在某些時候肯定會選擇一個答案)。另一個更好的答案可能就在眼前。 –
正則表達式應儘量簡單,以完成任務。當你增加複雜性時,你會增加它意外中斷的可能性。
這裏就是我開始:
'Hello, my name is %{John}.'[/^(.+)%/, 1] # => "Hello, my name is "
所有這一切確實是指定開始在該行的開始和捕捉一切達%
。沒有別的應該是必要的。
爲什麼不能['s.split(「%{」).first'](http://ideone.com/OrwRvf)? –
爲什麼不's.split('%')。first'。不需要'{'。 –