JavaScript: 如何使用正则表达式获取字符串中的特定文本
JavaScript: How to get specific text in a string using RegEx
我无意中发现了这个正则表达式,然后用谷歌搜索了它。很多。但不幸的是不太明白 RegEx 是如何工作的......
所以为了快速完成这个,因为我的工作中只有一小部分需要它,所以我需要你们。再次 :))
所以就这样...
我只想检索格式为 0000x0000
的特定字符串。例如:
输入:NameName975x945NameName
输出:
975x945
还必须考虑这样的字符串:
NameNameName9751x9451NameNameName
(整数和字符串更长...)
在 String.prototype.match()
中使用正则表达式获取字符串的特定部分。
str.match(/\d+x\d+/)[0]
var str = "NameName975x945NameName";
var match = str.match(/\d+x\d+/)[0];
console.log(match)
我们需要更多细节,但我会按顺序进行:
假设 x 前后可以有任意数量的数字,并且这些数字可以有不同的长度:
[\d]+x[\d]+
假设 x 之前的位数需要等于 x 之后的位数(如您的示例所示),并且该数字是有限的(并且足够小,因此您的正则表达式不会太长) :
[\d]{1}x[\d]{1}|[\d]{2}x[\d]{2}|[\d]{3}x[\d]{3}
(依此类推)
查看 this related answer 以了解有关随着号码长度变长处理此问题的更多详细信息。
然后您可以使用 String.prototype.match()
和您的正则表达式来获取字符串中的匹配项。
我无意中发现了这个正则表达式,然后用谷歌搜索了它。很多。但不幸的是不太明白 RegEx 是如何工作的...... 所以为了快速完成这个,因为我的工作中只有一小部分需要它,所以我需要你们。再次 :))
所以就这样...
我只想检索格式为 0000x0000
的特定字符串。例如:
输入:NameName975x945NameName
输出:
975x945
还必须考虑这样的字符串:
NameNameName9751x9451NameNameName
(整数和字符串更长...)
在 String.prototype.match()
中使用正则表达式获取字符串的特定部分。
str.match(/\d+x\d+/)[0]
var str = "NameName975x945NameName";
var match = str.match(/\d+x\d+/)[0];
console.log(match)
我们需要更多细节,但我会按顺序进行:
假设 x 前后可以有任意数量的数字,并且这些数字可以有不同的长度:
[\d]+x[\d]+
假设 x 之前的位数需要等于 x 之后的位数(如您的示例所示),并且该数字是有限的(并且足够小,因此您的正则表达式不会太长) :
[\d]{1}x[\d]{1}|[\d]{2}x[\d]{2}|[\d]{3}x[\d]{3}
(依此类推)
查看 this related answer 以了解有关随着号码长度变长处理此问题的更多详细信息。
然后您可以使用 String.prototype.match()
和您的正则表达式来获取字符串中的匹配项。