簡體   English   中英

為什么我的正則表達式不適用於這種特殊情況

[英]Why my regex not working in this particular case

我希望在這些文本之間輸出“pw =”之后的數字

例如

"blablabla pw=0.5 alg=blablalbala"

會得到我0.5

我使用的正則表達式是:

/.*pw=+(.*)\s+alg=.*/g

在javascript的上下文中,我將在匹配函數中使用該正則表達式來獲取數字:

str.match(/.*pw=+(.*)\s+alg=.*/g)

但是在regex101.com中,匹配和高亮的結果根本不匹配(結果顯示正則表達式是正確的而高亮部分沒有)

你應該刪除/g全局修飾符,我建議將你的值匹配模式精確到[\\d.]*

關鍵是當全局修飾符與String#match ,將丟棄所有捕獲的組值。

使用正則表達式

str.match(/\bpw=([\d.]*)\s+alg=/)
                 ^^^^^^        ^

請注意,在模式的開頭和結尾不需要.*String#match不需要完整的字符串匹配(與Java中的String#matches()不同)。

 var str = 'blablabla pw=0.5 alg=blablalbala'; var m = str.match(/\\bpw=([\\d.]*)\\s+alg=/); if (m) { console.log(m[1]); } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM