我已经在网上寻找了一个答案,但似乎不能让它工作。
我开发了以下正则表达式:
(?<![^d][\])[.](?![d])
目标是识别任何'。
未转义的'(点)或十进制数的一部分。ie)
- abc.co。,两个点应该匹配
- ab0.co。,两个点应该匹配
- abc.0。,两个点应该匹配 abc .co
- 。uk,只有第二个点匹配
- 0.00,点不匹配
- abc0.0。uk,第一个点不匹配(这是可接受的结果),第二个点应该
目前它适用于以上所有情况,除了:
- abc.0。,两个点应该匹配
任何想法吗?看起来向后看工作正常,但是向前看不是。
我相信这对任何正则表达式大师来说都是一个简单的问题!
供参考。我正在。net 4中开发这个
试试这个
(?<![\d]).(?=d)|(?<=[^D\]).(?!d)|(?<=[^d\]).(?!d)
在Regexr上查看
我把它分成三步。
如果前面不是转义字符也不是数字,后面是数字,则匹配
如果前面不是转义字符且后面不是数字则匹配
如果前面不是转义字符且不是数字且后面不是数字则匹配
将任务除以2。首先检查字符串是否为数字[^.d]
。第二步,从没有转义符号的点中选择。这种方法要简单得多。
Regex from other answer不涵盖所有情况