我需要一个与以下内容匹配的正则表达式(括号表示我想匹配此部分,它们不在匹配的实际字符串中!):
More Words:
6818 [some words] 641 [even more words]
我尝试了以下内容:
(?<=[0-9]+\s)[a-z\s]+(?!\s{2,})
用文字说出来; “匹配所有单词,包括它们之间的空格,它们在一个或多个数字后面和一个或多个空格之前出现一个空格”,但它会选择所有空格以及它有时会删除一个单词的最后一个字母(wtf?)
答案 0 :(得分:2)
试
(?<=[0-9]+\s)([a-z]+\s)*[a-z]+(?!\s{2,})
@Bart:我删除了括号。
说明:这将选择所有单词后跟一个空格(如果存在)加上最后一个单词后跟空格(这是必须的)
答案 1 :(得分:2)
这对我有用
[0-9]+\s([a-z \s]+)\s\s
答案 2 :(得分:-1)
(?<=\d\s)([a-zA-Z]+\s)*[a-zA-Z]+
这个就行了!不要问我是怎么来的,只是模糊不清......但是,你是一个很好的帮助:)
澄清这个正则表达式,简短解释:
1: ( open group 1
2: ?<=\d\s look, if a digit followed by a whitespace are before group 2
3: ) close group 1
4: ( open group 2
5: [a-zA-Z]+\s match any words / letters that are followed by a whitespace
6: )* close group 2 and let it repeat or not even be there
7: [a-zA-Z]+ match any words / letters and let them repeat one or more times
长话短说,正则表达式不会尝试匹配空格数量之间的单词,但匹配数字/空格和单词/字母之间的任何内容:)