2

我对正则表达式完全没有经验,所以如果这是一个简单的问题,我深表歉意,但我无法在任何地方找到任何答案。我正在尝试匹配形式的字符串,[some numbers] [some letters]123 apples我不想在它们前面有单词时匹配它们about(例如about 10 apples不应该匹配)。

我尝试过使用(?<!about )(\d[,\.\d]*) ([a-zA-Z]+),但这显然不起作用,因为它只是在某种程度上移动了比赛(例如about 12 apples匹配为2 apples)。我能做些什么来解决这个问题?

4

2 回答 2

1

我以前遇到过这个问题。试试这个:

(?<!about )(\b\d[,\.\d]*\b) ([a-zA-Z]+)

匹配零字符的\b单词边界(空格后跟字母数字,反之亦然)。它将拒绝将“about 123 apples”匹配为“23 apples”,因为“2”之前没有单词边界。

于 2012-05-26T19:41:21.137 回答
0

你是如此接近: (?<!about \d*)(\d[,\.\d]*)。增加\d*你的负面看法。

于 2012-05-26T19:45:30.603 回答