我试图用两个或更多的内部点字符(不是句点)来匹配一个(复合)单词。
第3-5行是匹配的
到目前为止,我可以像这样匹配所有这些:
W·w
但我不知道如何排除像1和2这样的线。
这是我实际问题的简化版本,它在Xcode中搜索特定的模式。我认为我需要提高我对regex的总体知识。
发布于 2012-08-21 10:11:37
你的指令集只找一个点。试一试
\w•\w+•+允许重复一个或多个前一个令牌,因此这个正则表达式将与第3行中的l•dots•匹配。
发布于 2012-08-21 15:04:26
(\w+•\w+•(?:\w+•)*\w+)这将帮助您从字符串中捕获匹配项。
所以,让我们来玩一下:
\w+<-此匹配词
\w+•\w+• <-这个词有两个点,如下所示:a•line•
(?:\w+•)* <-匹配\w+•的下一次[0,infinity]次数如下:a•line•like•<-它将捕获a•、line•、like•(以及其他一个字接一个字的单词或捕捉零长度字符串)
(?:pattern)<-我使用它来防止匹配行为,它只是分组。
\w+ <-它将捕获最后一个词
现在让我们看看pattern:
(word•word•([grouping]word•)[0, infinity]{times}word)
word•word•word将捕获
word•word•word•word将捕获
word•word•word•word•word将捕获
诸若此类
它将捕捉单词序列,其中只有一个点,其中包含3个,无穷大的单词。
https://stackoverflow.com/questions/12052619
复制相似问题