簡體   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