繁体   English   中英

在javascript中匹配带regexp的字符串

[英]match a string with regexp in javascript

我在JS中使用regexp匹配字符串时遇到问题。 我可以用这个:

/"[^"]*?"/g

在这个字符串中:

" this is a string "

但我不能在此使用它:

" this is a \"string\" "

我怎么能解决这个问题? 谢谢。

如果我理解正确,你想要做的是测试是一个字符串格式是否正确? 所以没有过早的弦乐结局?

如果是这种情况你可以使用/"(?:[^"\\\\]|\\\\.)*"/g

[^\\]?(".*?[^\\]")

你可以试试这样的东西。你需要抓住小组或捕获而不匹配。参见演示。

https://regex101.com/r/nS2lT4/30

要么

(?:[^\\]|^)(".*?[^\\]")

见演示。

https://regex101.com/r/nS2lT4/31

在这种情况下你不应该使用[^"]*你也不需要非贪心你可以使用以下正则表达式来匹配2引号之间的所有内容:

/"(.*)"/g

演示

如果你想匹配"你可以简单地在字符类中使用带有全局修饰符的白色空间匹配器的单词字符匹配器:

/[\w\s]+/g

演示

另一种方法是你可以使用负面的后视

/(?<!\\)"(.*?)(?<!\\)"/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM