我想编写一个正则表达式来匹配包含字母、空格和数字后跟点的字符串。这些数字可以出现在字符串中的任何位置,并且可以有多个。例如:
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+(?=\.)
匹配数字后跟一个点。但是当我将后者插入前者时,它会匹配所有数字,以及文字字符“+”、“(”、“?”、“=”、“.”和“)”。
有没有办法实现这个目标?
尝试:
^(?:[a-zA-Z ]+|\d+\.)+$
参见:regex101
说明
^
:字符串的开头(?:...)+
:其中元素可能仅由以下任一组成
[a-zA-Z ]+
:字母和空格|
:或\d+\.
:数字后跟文字“.”$
:直到字符串末尾