我试图用两个或更多的内部点字符(不是句点)来匹配一个(复合)单词。
第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
复制相似问题