javascript - javascript equivalent for python regex yes-pattern no-pattern
问题描述
In python there is a syntax for - if a capture group exists then x else y e.g.
>>> pat = re.compile('(?:(a)|(c))b(?(1)a|c)') # should only match 'aba' or 'cbc'
>>> pat.match('abc')
None
>>> pat.match('aba')
<re.Match object; span=(0, 3), match='aba'>
>>> pat.match('cba')
None
>>> pat.match('cbc')
<re.Match object; span=(0, 3), match='cbc'>
How might one achieve a similar expression in javascript.
Leading to a general approach for converting the python regex syntax to javascript
(?(id/name)yes-pattern|no-pattern)
I've tried a few ideas but haven't found an approach that's worked
解决方案
For this particular case, you don't need if/else syntax, you can backreference a single capture group:
const pattern = /([ac])b\1/;
console.log(
pattern.test('abc'),
pattern.test('aba'),
pattern.test('cbc'),
);
推荐阅读
- javascript - 如何在弹出窗口上添加下一个上一个按钮?
- javascript - 在 html 表中,插入带有某些特定单词的文件名的图像
- react-native - React-Native 和 Redux 原始文本不能在外部使用
标签。不呈现字符串:'' - sql - 处理整个数据集的多个 when 语句
- excel - Powershell 的 .csv 文件输出显示在 Excel 的一栏中
- javascript - 需要在不导入整个组件的情况下从一个文件调用一个函数到另一个文件进行反应
- java - java.security.InvalidKeyException:无效的密钥长度:8 字节
- network-traffic - 多个车道上的 SUMO 交通模拟感应循环
- node.js - 无法使用 node.js 命令提示符安装 Angular CLI
- oracle - 我们如何有效地使用 Oracle 临时空间?