span8
span4
嗨@aviveiro,元字符'\b'代表一个词的边界(包括空格、正文的开始/结束、逗号、句号等)可能会对你有帮助。例如,这个正则表达式匹配单词边界中间的单个字符'D'。
(? < = \ b) D (? = \ b)
@takashi:优秀的答案。我仍然不完全熟悉\b的功能。
注意:在“普通”正则表达式中,确实需要前向和后向断言。但是在StringSearcher中,您不需要它们,因为它将捕获所有实例,而\b根据定义什么也不捕获,所以您只需要使用它们
bD \ b \
并在Advanced部分中指定第一个列表。
关键的一点是,对于StringSearcher中的RegEx实现,您不需要使用前向/后向断言,也不需要使用任何分组括号来捕获测试字符串中单个字母D的两个实例。
但是您说得对,FME之外的其他实现可以给出不同的输出。
word boundary \b表示所有非单词字符,所以\bD\b匹配字符串,因为它匹配某些部分。
下面的说法至少是不正确的:
在“普通”正则表达式中,确实需要前向和后向断言
要捕获一个位置,需要用大括号括起来:\b(D)\b
(当然,有一个非捕获版本(?:)将封顶,但不报告。
与流行的说法相反,\b是一个(零长度)断言。如果你用括号把它括起来,它会被抓取。开始也是一样,结束也是一样。
如果grepped, regexp结果总是显示enire字符串。所有匹配的列表名。
要获取indvidual捕获的D,需要将它括在大括号中,并使用子表达式匹配列表名。
此外,使用lookbehind的味道并不多。Python的版本可以,我想这会让你们高兴。
有一个网站展示了所有的口味和他们的影响。
可以通过前向和一些更多的regexp调整来模拟Lookbehind。
当然,从我上次读到它以来,它可能已经改变了。
读读这个问题:Jan Goyvaerts的作品非常适合这个。正则表达式(见朋友。他的文件在那里)但是有很多好文件。
©2020安全亚搏在线软件公司|法律