组合Regex来匹配字符串的变体
Combine Regex to match variations of a String
我有一个字符串,我想从使用javascript拉一些内容。该字符串可以有多种形式,如下所示:
[[(a*, b*) within 20]] or [[...(a*, b*) within 20]]
,其中"…"可能存在,也可能不存在。
我想要一个匹配"(a*, b*)在20"部分的正则表达式。
/'['[(.*?)']']/.exec(text)[1]
将匹配[[(a*, b*) within 20]]
和
/([^'.]+)']']/.exec(text)[1]
将匹配[[...(a*, b*) within 20]]
我如何结合这些,使两个版本的文本将匹配"(a*, b*)在20"?
你可以使用这个正则表达式:
var m = s.match(/'['[.*?('([^)]*').*?)']']/);
if (m)
console.log(m[1]);
// (a*, b*) within 20 for both input strings
我想要一个匹配(a*, b*) within 20
部分的正则表达式。
你可以试试
'['[.*?('(a'*, b'*') .*?)']']
下面是regex101
的演示注意:您可以使用'w
或[a-z]
,使其更精确,根据您的需要,而不是a
和b
'['[.*?('w'*, 'w'*') .*?)']']
转义字符'
用于转义regex模式中的特殊字符,如。[[]] * ()
您可以使用以下命令来匹配这两个变量。
'['[[^(]*('([^)]*')[^']]*)']']
:
'[ # '['
'[ # '['
[^(]* # any character except: '(' (0 or more times)
( # group and capture to '1:
'( # '('
[^)]* # any character except: ')' (0 or more times)
') # ')'
[^']]* # any character except: '']' (0 or more times)
) # end of '1
'] # ']'
'] # ']'
演示工作相关文章:
- 制作一个regex来验证只有一个数字的字符串
- Datatables查询url字符串:需要regex来修复url解析
- 用于查找子字符串的Regex
- Regex,用于从字符串中筛选关键字
- RegEx只匹配JSON字符串中最里面的数组
- JavaScript Regex(?i)选项中字符串大小写不敏感的部分不起作用
- RegEx以匹配字符串中的两个或多个名称
- Regex模式匹配,从Javascript中的字符串中提取时间,结果出乎意料
- JavaScript Regex,用于由特定字符串包围的数字和空格
- 从Regex模式获取子字符串
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- Regex-从字符第N次出现到字符串末尾的匹配
- regex来构建字符串,直到遇到第N个匹配项
- 使用Regex修改字符串
- 在 JavaScript 字符串 (regex) 中插入多个换行符 (CodeMirror)
- 匹配引号之间的随机字符串Regex javascript
- 切换组合大小写字符串regex和数字
- Javascript从子字符串regex中提取
- Javascript替换字符串regex
- 从类似JSON的字符串Regex中生成有效的JSON