Answers:
(\?(.+))?$
应该很快。我不会太担心速度。
java.util.regex.Pattern
类。
应该这样做:
^/\b([a-z0-9]+)\b(?<!ignoreme|ignoreme2|ignoreme3)
您可以添加任意多的被忽略的单词,这是一个简单的PHP实现:
$ignoredWords = array('ignoreme', 'ignoreme2', 'ignoreme...');
preg_match('~^/\b([a-z0-9]+)\b(?<!' . implode('|', array_map('preg_quote', $ignoredWords)) . ')~i', $string);
由于您想排除两个单词,因此需要一个变数:
^/(?!ignoreme$)(?!ignoreme2$)[a-z0-9]+$
现在,两个条件都必须为true(不允许ignoreme或ignoreme2)才能匹配。
/ignoremenot
,/
其后跟ignoreme
。