嘿,我想將所有數字分組,包括斜線
我有這樣的字串
- 一些文字 156/6
- 其他案文 54/966
- 另一個文本 1/9
等等 ..
我想從結果中分組我的意思是數字包括斜線
像這樣 156/6 54/966 1/9
我試過了,但如果我在帶有斜杠的數字之前或之后添加和字母 txt,它就不起作用
^\d (\/\d )*$
uj5u.com熱心網友回復:
由于您正在指定^并且$您要求整個字串是帶有斜杠的數字,這就是為什么如果您之前輸入文本它不會選擇該組的原因。
此外,如果您想捕獲整個數字斜線數字字串而不僅僅是斜線的后半部分,您應該將整個正則運算式放在一個捕獲組中。
這應該有效:(\d \/\d )
示例:https ://regexr.com/6lfii
uj5u.com熱心網友回復:
(\d{1,}[\/]{1}\d{1,})
你可以在這里測驗它。我希望這會有所幫助。
uj5u.com熱心網友回復:
我不清楚每個字串是否有多個目標或只有一個...
您在此處使用的正則運算式無法作業,因為它只會匹配具有完全目標格式的字串。^僅匹配字串的開頭和$結尾。所以
/^\d (\/\d )*$/.test("123/456")是真的/^\d (\/\d )*$/.test("x123/456")是假的/^\d (\/\d )*$/.test("123/456x")也是假的
此外,您正在使用一個捕獲組(\/\d ),其中一個非捕獲組就足夠并且效率更高(作業更少,記憶體分配更少)。
如果每個字串都有一個目標,那么str.match(/\d (?:\/\d )*/)就可以了。
如果需要提取幾個,可以使用str.match(/\d (?:\/\d )*/g).
const test1 = "hello 123/456"
const test2 = `hello 12/34
sup 56/78/90`
console.log(test1.match(/\d (?:\/\d )*/))
console.log(test2.match(/\d (?:\/\d )*/g))
uj5u.com熱心網友回復:
正則運算式測驗器
使用在線測驗儀驗證并在欄位中填寫以下字串。
正則運算式型別開關設定為Javascript。
要測驗的欄位正則運算式
[a-zA-Z ] (\d )(\/\d )\n*
要測驗的欄位字串
some text 156/6
other text 54/966
another text 1/9
欄位替換
注意,最后必須有一個空格!
$1$2
結果可以在替換下看到:
156/6 54/966 1/9
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/472502.html
標籤:javascript 节点.js 正则表达式
