我尝试编写regexp来查找字符串中带减号的数字。
正则表达式应与这些字符串匹配
abc ghhkjl -123 123- gfdhs kljf fdsg -123 fdjol jklp 123- ljfds -123 123-
正则表达式不应与这些字符串匹配
abc ghhkjl-123 123-gfdhs kljf fdsg -123fdjol jklp123- ljfds
我做过的正则表达式
(?:^|\W|\w+\s)\d+(?:$|\W|\s\w+)
请帮助!
答案 0 :(得分:3)
答案 1 :(得分:2)
或者,如果要查找单个数字,则可以在该数字的左侧和右侧重复匹配的单词字符和水平空格字符,该字符的左侧或右侧带有减号:
^(?:\h*\w+\h+)*(\d+-|-\d+)(?:\h+\w+\h*)*$
^
字符串的开头(?:
非捕获组
\h*
在开头匹配可选的水平空白字符\w+\h+
匹配1个以上的字符字符,然后匹配1个以上的水平whitspace字符)*
关闭组并重复0次以上(\d+-|-\d+)
捕获第1组,带负号的数字(?:
非捕获组
\h+\w+
匹配1个以上水平的whitspace字符和1个以上的单词字符\h*
在末尾匹配可选的水平whitspace字符)*
关闭组并重复0次以上$
字符串结尾