2

我想在包含至少一个的字符串/行的开头匹配一个单词/。一个词可以包含任何字母数字或特殊字符。即包含至少一个非空格字符的单词/

例如,

a/b/c 1.2 1.0    # match
a/b-d/c 1.2 1.0    # match
a_b_c 1.2 1.0    # NO match
a/b_c 1.2 1.0    # match

^\S+或者^[^ ]+可以获取第一个单词,但无法弄清楚如何保证其中至少有一个单词/

一般来说,我正在寻找一个正则表达式来匹配包含至少一个' x '但不包含任何' y '的字符串

任何帮助,将不胜感激。

4

1 回答 1

1

以下正则表达式应该适合您:

 ^(?=[^\/\s]*\/)\S+

/前瞻将确保在第一个单词中至少存在一个。

OP建议:这个正则表达式也应该工作:

^[^ ]*\/[^ ]*

测试:

 var re = /^(?=[^\/\s]*\/)\S+/;

 re.test('/abc'); // true
 re.test('abc/'); // true
 re.test('abc /def'); // false
 re.test('a-b-c /def'); // false
 re.test('/ /def'); // true
 re.test(' /def'); // false
 re.test('/def'); // false
于 2013-11-08T06:59:42.447 回答