正则表达式以捕获空格

时间:2014-07-27 15:18:35

标签: regex import.io

我有以下字符串:

Select SizesS M L XL

我想在“选择大小”之后立即拉出尺寸,基本上通过捕获一侧或两侧都有空间的“选择尺寸”。 这必须由regex单独完成,因为ImportIO不支持使用方法。

这是我到目前为止所做的:

(?:Select Sizes)\w(\s\w)*

提前致谢!

3 个答案:

答案 0 :(得分:4)

你可以使用lookbehind,

(?<=Select Sizes)(.*)

DEMO

OR

Select Sizes(\S+)\s*(\S+)\s*(\S+)\s*(\S+)

DEMO

四个捕获组用于捕获字符串Select sizes

之后的非空格字符

OR

> "Select SizesS M L XL".split(/Select Sizes| /g)
[ '',
  'S',
  'M',
  'L',
  'XL' ]

答案 1 :(得分:2)

您可以尝试简单的字符串操作:(如果需要,也可以使用trim()

"Select SizesS M L XL".substring(12).split(" ");

或者更好地使用

"Select SizesS M L XL".substring("Select Sizes".length).split(" ");

输出:

["S", "M", "L", "XL"]

如果您只使用捕获组查看前正则表达式,则从下面的正则表达式模式中获取索引2中的匹配组:

(Select Sizes)?\s*(\w+)\s*

注意:我认为Select Sizes后面没有任何内容,并且只有给定字符串中的大小。

这是demo

答案 2 :(得分:2)

如果您想评估相同的

,这是一个纯正则表达式解决方案
(?<!Select\s)(?<=Sizes|\s)(\w+)

匹配所有修饰符/g适用于上述正则表达式

测试字符串Select SizesS M L XL

的结果

MATCH 1

  1. [12-13] S
  2. MATCH 2

    1. [14-15] M
    2. MATCH 3

      1. [16-17] L
      2. MATCH 4

        1. [18-20] XL
        2. 演示regex101.com