是否存在一个与浮点数相匹配的正则表达式,但如果这是15.01.2016之类的构造的一部分则没有?
如果1.0A
1.B
.1
, s
应该会成功
1.0.0
1.0.1
20.20.20.30
12345.657.345
并且"[0-9]*\.[0-9]*"
喜欢
"[0-9]+\.[0-9]+(\.[0-9]+)+"
修改
关键部分是约束的组合:<div class='about'>
<p>
JavaScript (/ˈdʒɑːvəˌskrɪpt/[5]) is a high-level, dynamic, untyped, and interpreted programming language.
</p>
<br>
<p>
Despite some naming, syntactic, and standard library similarities, JavaScript and Java are otherwise unrelated and have very different semantics.
</p>
<br>
<p>
JavaScript is also used in environments that are not web-based, such as PDF documents, site-specific browsers, and desktop widgets.
</p>
<br>
</div>
而不是.about {
width: 500px;
text-align: center;
margin: auto;
padding-top: 50px;
border-right: 1px solid white;
border-left: 1px solid white;
padding-right: 15px;
padding-left: 15px;
height: 200px;
}
答案 0 :(得分:4)
你可以在python中使用这个正则表达式:
(?<![\d.])(?:\d*\.\d+|\d+\.\d*)(?![\d.])
(?![\d.])
是先行断言以使匹配失败
如果之前的字符是DOT或数字,则(?<![\d.])
是后置断言以使匹配失败答案 1 :(得分:2)
以下解决方案也使用前瞻和后视作为anubhava提到。此外,它负责处理负数,10的幂(也是负数)和整数(没有。):
(?<![\d.])-?(?:\d+\.?\d*|\d*\.\d+)([eE]-?\d+)?(?![.\d])
如果你在lookabehind (?<![\d.])
中添加一些额外的字符,你可以避免在随机字符串或单词末尾的匹配(例如,如果你不希望"python3"
匹配)。< / p>