我想構建一個正則表達式,它匹配'
或"
,然後匹配其他字符,當分別匹配'
或"
時結束,具體取決於在右邊遇到的情況開始。所以這個問題看起來簡單得足以在最後使用反向引用來解決;這裏是下面一些正則表達式的代碼(這是在Java中那麼介意額外逃逸字符,如\
的"
前):正則表達式;反向引用在字符集中不匹配的字符
private static String seekerTwo = "(['\"])([a-zA-Z])([a-zA-Z0-9():;/`\\=\\.\\,\\- ]+)(\\1)";
此代碼將成功地處理事情,如:
"hello my name is bob"
'i live in bethnal green'
的麻煩的是當我有一個這樣的字符串:
"hello this seat 'may be taken' already"
使用上述正則表達式就可以將初始部分在遇到失敗'
然後它會繼續併成功匹配'may be taken'
...但這顯然是不夠的,我需要整個字符串進行匹配。
我在想什麼,是我需要一種方法來忽略第一組中不匹配的引號類型,方法是將其作爲第三組字符集中的一個字符。但是,我知道沒有辦法做到這一點。有沒有某種鬼鬼祟祟的非反向引用功能或某種東西?我可以用來引用第一組中不匹配的字符?或者以其他方式解決我的困境?
嗨,歡迎來到StackOverflow。我冒昧地重新格式化您的文章一點。你可以點擊編輯鏈接查看我是如何做到這一點的。非常重要的是要知道你是否需要發佈代碼... – 2012-03-15 11:15:14