![](/img/trans.png)
[英]Validate/extract US Phone numbers with .net regular expression out of mixed character value
[英].NET regular expression to extract 1-4 digit value from mixed character value
我正在尝试为以下字符串完成 .NET 正则表达式:
示例 1. abc1234abc - 1234
示例2.abc12345abc -没有结果
示例 3. abc1234abc12345 - 1234
我试图从任何混合字符值中提取 1-4 个数字( 1
、 12
、 123
或1234
),但不超过 4 位(即,不是12345
)。
[0-9]{1,4}
模式产生:
示例 1. abc1234abc - 1234(好)
示例 2. abc12345abc - 1234,(不应返回任何结果)
示例 3. abc1234abc12345 - 1234, 1234, 5(应仅返回 1234)
我错过了什么? 谢谢你的帮助,我对正则表达式很陌生,我在任何地方都找不到我要找的东西。 我希望我的问题是有道理的。
您缺少将检查数字是否包含更多数字的环视:
(?<!\d)\d{1,4}(?!\d)
或者(如果您只需要匹配不包括印地语中所有 Uncide 数字等的常规数字):
(?<![0-9])[0-9]{1,4}(?![0-9])
(?<!\\d)
是一个否定的lookbehind,它检查下一个子模式之前是否没有其他子模式(在当前位置之前,“looks behind”),并且(?!\\d)
是一个否定的lookahead确保当前位置后没有数字(“向前看”)。 Lookarounds 不消耗字符,它们只是检查然后返回 true 或 false(从而允许或失败匹配),因此,您只能得到预期的匹配结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.