我可以在字符类中放置断言吗?

问题描述 投票:0回答:1

我想编写一个正则表达式来匹配包含字母、空格和数字后跟点的字符串。这些数字可以出现在字符串中的任何位置,并且可以有多个。例如:

Foo            -> Match
Foo Bar        -> Match
Foo 1 Bar      -> No Match
Foo 1. Bar     -> Match
Foo 11. Bar    -> Match
1. Foo 11. Bar -> Match

我知道我可以用

[a-zA-Z ]+
匹配字母和空格,用
\d+(?=\.)
匹配数字后跟一个点。但是当我将后者插入前者时,它会匹配所有数字,以及文字字符“+”、“(”、“?”、“=”、“.”和“)”。

有没有办法实现这个目标?

java regex regex-lookarounds
1个回答
-1
投票

尝试:

^(?:[a-zA-Z ]+|\d+\.)+$

参见:regex101


说明

  • ^
    :字符串的开头
  • (?:...)+
    :其中元素可能仅由以下任一组成
    • [a-zA-Z ]+
      :字母和空格
    • |
      :或
    • \d+\.
      :数字后跟文字“.”
  • $
    :直到字符串末尾
© www.soinside.com 2019 - 2024. All rights reserved.