正则表达式匹配整个字符串

时间:2015-11-04 02:28:44

标签: java regex

如果字符串中的每个字符都在正则表达式中,我怎样才能让我的字符串只通过测试?

这是我到目前为止所做的:

String w = theApplet.Word.getText().toLowerCase();
if(w.matches(".*[a-z-_]+.*")){
    theApplet.words.add(w);
    theApplet.str.setText("The word: "+w+" has been added to the list");
}

但是,即使字符串包含无效字符,该字符串也是有效的,只要它包含正则表达式中至少1个字符。

1 个答案:

答案 0 :(得分:1)

dispatch_async(dispatch_get_main_queue()) { self.collectionView.selectItemAtIndexPath(indexPathToReload, animated: true, scrollPosition: UICollectionViewScrollPosition.CenteredVertically) self.collectionView(self.collectionView, didSelectItemAtIndexPath: indexPathToReload) return } 表示"匹配任何字符零次或多次"

.*表示"匹配任何小写字符或破折号( - )或下划线(_)一次或多次"。

所以第一部分几乎消耗了整个字符串,如果至少有一个小写字符/短划线/下划线,则正则表达式返回true。

只需删除[a-z-_]+即可强制所有字符为小写字符/短划线/下划线。