逗号分隔字符串 with/without 空格的正则表达式
Regex for comma separated string with/without spaces
我想创建一个正则表达式,我想在其中提取满足模式的字符串。
输入字符串有以下两种可能出现方式
type MyClass inherits SomeClass,SomeOtherClass implements Node
type MyClass inherits SomeClass, SomeOtherClass implements Node
Note: implements word can be anything like extend
/union
/intersection
etc.
正则表达式应该从上面的输入字符串中提取 "inherits SomeClass, SomeOtherClass"
字符串。
我尝试了多个 SO 答案和不同的在线资源,但都无法获得成功。我使用 /inherits\s(.*?)\s/mg
仅适用于第一种情况。
满足这两种情况的正则表达式是什么?帮助将不胜感激。
检查字符串后面是否有implements
var regex = /inherits\s+(.*)\s+(?=implements?)/mg;
var str1 = "type MyClass inherits SomeClass,SomeOtherClass implements Node";
var str2 = "type MyClass inherits SomeClass, SomeOtherClass implements Node";
str1.match( regex ) //["inherits SomeClass,SomeOtherClass "]
str2.match( regex ) //["inherits SomeClass, SomeOtherClass "]
您可以使用
/inherits\s+\w+(?:\s*,\s*\w+)*/g
参见regex demo。
详情
inherits
- 文字子串
\s+
- 1+ 个空格
\w+
- 1+ 个单词字符(字母、数字或下划线)
(?:\s*,\s*\w+)*
- 零次或多次 (*
) 出现:
\s*,\s*
- ,
包含 0+ 个空白字符
\w+
- 1+ 个单词字符
JS 演示:
var regex = /inherits\s+\w+(?:\s*,\s*\w+)*/g;
var input1 = "type MyClass inherits SomeClass,SomeOtherClass implements Node";
var input2 = "type MyClass inherits SomeClass, SomeOtherClass implements Node";
var result1 = input1.match(regex);
var result2 = input2.match(regex);
document.write("result 1: "+ result1);
document.write("<br>")
document.write("\n result 2: "+ result2);
我想创建一个正则表达式,我想在其中提取满足模式的字符串。
输入字符串有以下两种可能出现方式
type MyClass inherits SomeClass,SomeOtherClass implements Node
type MyClass inherits SomeClass, SomeOtherClass implements Node
Note: implements word can be anything like
extend
/union
/intersection
etc.
正则表达式应该从上面的输入字符串中提取 "inherits SomeClass, SomeOtherClass"
字符串。
我尝试了多个 SO 答案和不同的在线资源,但都无法获得成功。我使用 /inherits\s(.*?)\s/mg
仅适用于第一种情况。
满足这两种情况的正则表达式是什么?帮助将不胜感激。
检查字符串后面是否有implements
var regex = /inherits\s+(.*)\s+(?=implements?)/mg;
var str1 = "type MyClass inherits SomeClass,SomeOtherClass implements Node";
var str2 = "type MyClass inherits SomeClass, SomeOtherClass implements Node";
str1.match( regex ) //["inherits SomeClass,SomeOtherClass "]
str2.match( regex ) //["inherits SomeClass, SomeOtherClass "]
您可以使用
/inherits\s+\w+(?:\s*,\s*\w+)*/g
参见regex demo。
详情
inherits
- 文字子串\s+
- 1+ 个空格\w+
- 1+ 个单词字符(字母、数字或下划线)(?:\s*,\s*\w+)*
- 零次或多次 (*
) 出现:\s*,\s*
-,
包含 0+ 个空白字符\w+
- 1+ 个单词字符
JS 演示:
var regex = /inherits\s+\w+(?:\s*,\s*\w+)*/g;
var input1 = "type MyClass inherits SomeClass,SomeOtherClass implements Node";
var input2 = "type MyClass inherits SomeClass, SomeOtherClass implements Node";
var result1 = input1.match(regex);
var result2 = input2.match(regex);
document.write("result 1: "+ result1);
document.write("<br>")
document.write("\n result 2: "+ result2);