我想构建一个正则表达式,它匹配'
或"
,然后匹配其他字符,当分别匹配'
或"
时结束,具体取决于在右边遇到的情况开始。所以这个问题看起来简单得足以在最后使用反向引用来解决;这里是下面一些正则表达式的代码(这是在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