我想构造一个正则表达式,它匹配'
or"
然后匹配其他字符,在分别匹配 a'
或 an时结束"
,具体取决于在开始时遇到的内容。所以这个问题看起来很简单,可以在最后使用反向引用来解决;下面是一些正则表达式代码(它在 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'
......但这显然是不够的,我需要匹配整个字符串。
我在想的是,我需要一种方法来忽略第一组中不匹配的引号类型,方法是将其作为字符包含在第三组的字符集中。但是,我知道没有办法做到这一点。是否有某种鬼鬼祟祟的 NOT 反向引用函数之类的?我可以用它来引用第一组中不匹配的字符??或者以其他方式解决我的困境?