我将使用正则表达式来匹配表达式:
所以,它匹配:
ss-ss
12-s2
11-11
%@2s-#1
并且不匹配:
s s-ss
ss-s s
s s-s s
1 s-1s
1s-1 s
1 s-1 s
ss-ss-ss
s1-s2-s3
有什么方法可以用正则表达式创建吗?
我尝试类似的事情:
^.[^ ]-[^ ]*
但它仅匹配具有任意数量连字符的表达式,以及例如出现的任何空格
ss-ss-ss
1 s-1 s
正则表达式:
'^[^\ \-]+\-[^\ \-]+$'
应该做你想做的事。这是我所做的测试:
$ cat x.tst
ss-ss
12-s2
11-11
%@2s-#1
s s-ss
ss-s s
s s-s s
1 s-1s
1s-1 s
1 s-1 s
ss-ss-ss
s1-s2-s3
$ egrep '^[^\ \-]+\-[^\ \-]+$' x.tst
ss-ss
12-s2
11-11
%@2s-#1
$ egrep -v '^[^\ \-]+\-[^\ \-]+$' x.tst
s s-ss
ss-s s
s s-s s
1 s-1s
1s-1 s
1 s-1 s
ss-ss-ss
s1-s2-s3