我使用了正则表达式
(.*)(\s){1}([0-9]*min|lightning)\b
匹配如下字符串:
针对Enterprise Rails编写快速测试60分钟
Clojure Ate Scala(在我的项目中)45分钟
会计驱动型发展45分钟
匹配组将给出:
针对企业Rails编写快速测试
空间
60分钟
但像???????????????????? 60min
这样的字符串也匹配。
任何人都可以帮我解决这个问题吗?
更新
根据答案,正如下面的正则表达式将解决它,但输入3
^([^XX]*)(\s){1}([0-9]*min|lightning)\b$
我想允许 - 以便输入3匹配。字符串如下所示 也匹配哪个不正确
第1组应仅包含字母
------------ 60min
答案 0 :(得分:0)
将(export CFLAGS="-fexceptions ${CFLAGS-}";./configure --some-option -what-ever; make)
更改为configure
。
它将确保您只匹配字符串开头的字母数字和空格。请参阅demo。
由于问题在不断发展,让我们以另一种方式解决问题。将正则表达式更改为:
(.*)(\s){1}([0-9]*min|lightning)\b
将^([\w ]*)(\s){1}([0-9]*min|lightning)\b$
更改为不想匹配的内容。它被称为否定字符类,并允许您拒绝"它包含的字符。
如果您想避免出现两个连续的非字母数字字符,可以使用否定前瞻:
^([^XX]*)(\s){1}([0-9]*min|lightning)\b$
^^^^^