为了账号安全,请及时绑定邮箱和手机立即绑定

正则表达式仅匹配没有以下多个空格的部分

正则表达式仅匹配没有以下多个空格的部分

蛊毒传说 2021-04-12 16:13:16
我有一些文本在屏幕上居中左右,看起来像这样From:DEMO - Sliced Invoices                                            Order NumberSuite 5A-1204                          Order Number123 Somewhere Street                  Order NumberYour City AZ 12345                      Order Numberadmin@slicedinvoices.com                  Order Number我要实现的目标是编写一个正则表达式,仅使左侧部分忽略订单号部分,该部分可以是任何文本,而不是具体的订单号...甚至有可能我尝试忽略多个空白而没有运气。到目前为止,我已经提出了:F.{1,250}?:+\nD.{1,250}?  哪个读From:Demo - Sliced Invoices  但由于订单号在同一行上,因此我无法继续下一行...
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

你可以用这个

^.*?(?=\s{2,}|\n)
  • ^ -字符串开始

  • .+? -匹配除换行零或更多时间以外的任何内容

  • (?=\s{2,}|\n) -检查两个或多个连续空间或换行符的正面外观

let str = `From:

DEMO - Sliced Invoices                                            Order Number

Suite 5A-1204                          Order Number

123 Somewhere Street                  Order Number

Your City AZ 12345                      Order Number

admin@slicedinvoices.com                  Order Number`


let op = str.match(/^.+?(?=\s{2,}|\n)/gm)


console.log(op)


查看完整回答
反对 回复 2021-04-29
?
长风秋雁

TA贡献1757条经验 获得超7个赞

此正则表达式可捕获最多两个或更多空格的所有内容,或者使用lookahead捕获换行符。


const regex = /^(.*?)(?= {2,}|\n)/gm;

const txt = document.querySelector('div').textContent;

const matches = txt.match(regex);

console.log(matches);

<div>From:

DEMO - Sliced Invoices                                            Order Number

Suite 5A-1204                          Order Number

123 Somewhere Street                  Order Number

Your City AZ 12345                      Order Number

admin@slicedinvoices.com                  Order Number</div>


查看完整回答
反对 回复 2021-04-29
  • 2 回答
  • 0 关注
  • 212 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信