我想在包含至少一个/
的字符串/行的开头匹配一个单词。单词可以包含任何字母数字或特殊字符。即包含至少一个/
的非空格字符的单词。
例如,
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 '的字符串
任何帮助都将不胜感激。
答案 0 :(得分:1)
以下正则表达式适合您:
^(?=[^\/\s]*\/)\S+
lookahead将确保第一个单词中至少有一个/
。
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