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() 和您的正则表达式来获取字符串中的匹配项。