我的表格中有一个字符串:" xMyS"
我想使用Javascript Regex表达式提取x和y。
例如,如果字符串是
10M225S
我需要10和225。
此外,字符串可能没有x或y部分。例如,它可以只是225S
或仅10M
。
编辑:我尝试了.match()
之类的内容,但不知道如何以上述格式提取值。
/(\w+)M(\w+)S/
,但它似乎仅适用于10M225S
而不适用于10M
和225S
。
答案 0 :(得分:1)
您可以使用.split()
分割字符串:
cell.parent(tag_name: 'table') # equivalent to `cell.table(xpath: './ancestor::table')`

在这种情况下不需要正则表达式。
答案 1 :(得分:1)
您可以这样做:
var str = "10M255S"
var match = str.match(/^([0-9]*)M*([0-9]*)S*$/)
然后match[1]
为10
而match[2]
为255
如果var str = "10M"
,则match[1]
为10
,如果var str = "255S"
,则match[1]
为255
在三种情况中的任何一种情况下,匹配从数组match
的第二个元素开始。
希望这有帮助。
答案 2 :(得分:0)
如果模式永远不变,K-Gun的答案是有意义的,但如果'M'和'S'只是任意文本的占位符示例,那么使用RegExp / \ d + / g 强>
<!DOCTYPE html>
<html>
<head>
<script>
function fn() {
var re = /\d+/g, // match digits, globally
str = '10M225S',
result = [],
temp;
// process successive matches
while ((temp = re.exec(str)) !== null)
result.push(temp[0]);
document.getElementById("result").innerText = result.toString();
}
</script>
</head>
<body onload="fn()">
<h1 id="result"></h1>
</body>
</html>
这是展示代码的plunkr。
RegExp re 将匹配数字运行。无论任何非数字字符如何,这都可以工作,例如它会匹配“10ZXZZ225FOZ”。
答案 3 :(得分:0)
var str = "10M255S"
var result = str.match(/([0-9])/g)
var value = []
result.map(res => {
value += res
})
console.log(value)