我對Ruby完全陌生,所以我只是想知道是否有人能幫助我。使用紅寶石的正則表達式
我有以下字符串:
"<planKey><key>OR-J8U</key></planKey>"
什麼是正則表達式我必須寫得到的中心部分OR-J8U?
我對Ruby完全陌生,所以我只是想知道是否有人能幫助我。使用紅寶石的正則表達式
我有以下字符串:
"<planKey><key>OR-J8U</key></planKey>"
什麼是正則表達式我必須寫得到的中心部分OR-J8U?
使用以下方法:使用先行
str = "<planKey><key>OR-J8U</key></planKey>"
str[/(?<=\<key\>).*(?=\<\/key\>)/]
#=> "OR-J8U"
這捕獲任何東西在打開和關閉之間的「關鍵」的標籤和lookbehinds
如果你想要得到的字符串OR-J8U
那麼你可以簡單地使用字符串在正則表達式中;該-
字符來轉義:
/OR\-J8U/
雖然,我相信你想要的是內<planKey><key>
和</key></planKey>
封閉的任意字符串。
/(?<=\<key\>).*(?=\<\/key\>)/
如果不允許空字符串,則更換*
與+
:
/(?<=\<key\>).*(?=\<\/key\>)/
如果在這種情況下,冰的回答,如果你允許一個空字符串是非常有用的你更喜歡更通用的方法(任何標籤內的任何字符串),那麼我相信普遍的觀點是不使用正則表達式。請考慮使用HTML解析器。因此,你可以在這方面找到一些問題和答案。
該字符串是否包含'「'字符? – Elyasin
一般來說,解析XML應該使用XML解析器來完成.Regex可以用於快速和骯髒的解決方案,但是請注意,它們可能會被其他有效的XML 。 –
[不要使用正則表達式解析XML](https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454)! –