我有一系列不同的物品。他们中有些人的名字前面有8-10位数字,有些人的名字后面有8-10位数字,而另一些人的名字后面再没有这些数字。
我有两个用于删除这些数字的表达式,但是我无法将它们与|组合。 (要么)。它们各自为自己工作,但是如果我先使用第一个表达式,然后再使用第二个表达式,我将无法获得想要的结果。
我现在将这些用于表达式:
GET /_cat/indices
但是,如果我同时使用它们(第一个然后另一个),那么某些行将完全空白。
如何结合使用这些来完成我想做的事情,或者如果更好,编写一个新表达式来完成我想做的事情:)
列表如下:
(?<=[\d]{8,10}) (.*)
.*?(?=[\d]{8,10})
想要这个结果:
12345678 Book
12345678 Book
Book 12345678
Book 12345678
Cabinet 120x30x145
答案 0 :(得分:1)
答案 1 :(得分:1)
而不是仅匹配包含以下内容的所有内容 8-10位数字+相邻的空格,请使用正则表达式替换 这样的数字(也+相邻的空格),带有空字符串。
要进行匹配,请使用以下正则表达式:
*\d{8,10} *
也就是说:
*
-一个空格和一个星号-一个空格序列(可能为空),\d{8,10}
-8到10位数字的序列,*
-另一个空格序列(可能为空)。(如我所说)替换字符串为空。当然,您应该使用
g
(全局)选项。
请注意,您不能使用\s
代替空格,因为\s
也会匹配
CR
和LF
,我们不想要这个。
有关工作示例,请参见https://regex101.com/r/1hsGzT/1
答案 2 :(得分:0)
您需要使用\b
meta sequence boundary:
/\b[0-9\s]{8,10}\b/g;
var str = `12345678 Book
12345678 Book
Book 12345678
Book 12345678
Cabinet 120x30x145`;
var rgx = /\b[0-9\s]{8,10}\b/g;
var res = str.replace(rgx, `\n`)
console.log(res);