2012-06-26 24 views
0

我想使用正則表達式來分割一些像這樣的字符串@key='value'到鍵和值。如何使用正則表達式來分割格式字符串?

我的正則表達式是[^@'=]+[^'=],當key和value的長度大於1時輸出是好的,但有時當長度只有1個char時,輸出不正確。

有人可以提出改進我的正則表達式?

+2

請提供示例輸入和失敗的源代碼。 – Thor

+0

@ class ='x'只輸出匹配類,值x沒有輸出。但是,如果@ class ='x1',則輸出匹配是類,並且x1 – alians

+1

另外,我沒有看到該正則表達式如何匹配您的字符串等任何內容......請示例!既工作又不工作。 – cha0site

回答

1

如果你願意喜歡拍攝鍵和值,你可以試試這個:

/^@([^=]+)='([^']+)'$/ 

然後,你將有$ 1鍵和$ 2的值。

編輯:

我想我看到你在做什麼。只需將您的正則表達式更改爲[^@'=]+即可查看其差異。但是,除非您告訴我們您使用的是什麼語言和一些示例代碼,否則我們無法告訴您。

+0

明白了,我的第一個回覆,我只需要調整我的代碼。感謝所有給出的建議。 – alians

0
\[email protected]([^=]+)='([^']+)' 

將作爲正則表達式工作,但它不考慮撇號的撇號。這是2個捕獲組...... \ A表示字符串的開始...然後@然後組....(不=)一個或多個='組(不)'後跟'

+0

謝謝,得到了一些消息。 – alians

+0

明白了,謝謝。 – alians

1
^@[A-Za-z0-9]+\s*=\s*'[A-Za-z0-9\s]+' 

This captures 
@Key = 'value' 
@key='value' 
@k = 'value' 

etc.. 
相關問題