Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式匹配部分单词,前面不带任何内容,但允许使用空格_Javascript_Regex - Fatal编程技术网

Javascript 正则表达式匹配部分单词,前面不带任何内容,但允许使用空格

Javascript 正则表达式匹配部分单词,前面不带任何内容,但允许使用空格,javascript,regex,Javascript,Regex,我想在一个以行开头的字符串中匹配一些类名,但它不允许在匹配之前使用字符,除了空格 我已经使用了/row-/g和/\s?row-/g和单词边界,但是当用户可能使用带有foo借阅条的类名,其中row-in借阅返回匹配或某些row类时,问题就出现了 我正在测试的类名示例字符串: 行某类foobar你好世界行类foo借阅栏行它是 我只想匹配行某个类和行它是您可以使用单词边界围绕模式,\b: \b ?row-\b 还要注意,\s不仅仅是空格,它实际上是 [ \t\n\r\f\v] 因此,除非您确定输入

我想在一个以行开头的字符串中匹配一些类名,但它不允许在匹配之前使用字符,除了空格

我已经使用了
/row-/g
/\s?row-/g
和单词边界,但是当用户可能使用带有foo借阅条的类名,其中row-in借阅返回匹配或
某些row类
时,问题就出现了

我正在测试的类名示例字符串:

行某类foobar你好世界行类foo借阅栏行它是


我只想匹配
行某个类
行它是

您可以使用单词边界围绕模式,
\b

\b ?row-\b
还要注意,
\s
不仅仅是空格,它实际上是

[ \t\n\r\f\v]
因此,除非您确定输入,否则最好是明确的,以避免意外结果


您可以尝试以下正则表达式:

(:?^|\s)row-
您可以将“row-”放在行的开头,也可以放在空白的前面,这样它才有效

(:? # Non-capturing group
    ^|\s # Matches tart of string/line or whitespace
)row-
您可以将
.match()
RegExp
/row-\w+/(?=\s |$)/g
一起使用,以匹配
行-
,然后是单词,如果后跟空格字符或输入结尾,则后跟单词

console.log(
“行某类foobar你好世界行foo借来的酒吧行是”
.match(/row-\w+-\w+(?=\s |$)/g)

)
能否使用插入符号(
^
)指定字符串的开头?像这样:
/(?:^ |\s)行-/
或者可能是一个lookback
/(?我不认为JS Regex中有look behind。@AnthonyStringer虽然我知道插入符号的用途,但我不确定它在我的情况下如何帮助匹配过程。无论是否有,我都在对所有实例进行全局查找。这是我问题的完美解决方案,甚至忽略了用户可以在其他名称中使用row in的情况作为一些行类。谢谢!这将马赫xyz行ab类也。这不是开始row@ShekharKhairnar不是根据我的测试哦,似乎我在我的答案中粘贴了错误的正则表达式。现在我看到我当前的正则表达式也与hello world row class相匹配…@Slayther请检查我上面的链接。即使我添加了hello world,它似乎也能正常工作d级