安迪·埃文斯(Andy Evans)
我有一个数据集,其中每行包含一组括在括号或括号内的数字。例如
Jim Bob Smith [1975]
Joe Bob Public (1955)
我遇到的问题是创建一个正则表达式,该表达式将匹配在两种情况下都可以使用的数字(不带括号或括号)。
我试过了
(?<=\[).+?(?=\]) and
(?<=\().+?(?=\))
因此,我需要帮助找到将两者结合的方法。任何帮助将不胜感激。
维克多·史翠比维
您可以使用以下.NET正则表达式:
(?:(\()|\[)(.*?)(?(1)\)|])
参见正则表达式演示
细节
(?:(\()|\[)
-一个非捕获组,将一个(
字符匹配并捕获到组1中,否则仅匹配一个[
字符
(.*?)
-第2组:除换行符以外的任何0个或多个字符,应尽可能少(而不是.*?
,您可能要使用\d+
在那里匹配1个或多个数字,或者\d{4}
仅匹配四个数字,甚至(?:20|19)\d{2}
匹配一年)在20世纪和21世纪c。)
(?(1)\)|])
-条件构造:如果第1组匹配,则a)
匹配,否则为]
char。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句