我希望得到一个子串在下面的情况中的子字符串:获取非标准模式
TruckScaleEntry_DriverId_1535
^------^
EntryCreateForm_TruckScaleEntry_DriverId_1535_SelectWidget_Code
^------^
在上面的例子中我想DriverId
(这并不总是DriverId
,它也可能会改变)但我永远不知道我正在处理哪种模式。事实上,我得到它与两个正则表达式和两种方法(match
和replace
)一起工作。但是我想知道是否有更好的和更简单的方法来实现它。
我得到的是:
console.log("TruckScaleEntry_DriverId_1535".match(/(?:.*TruckScaleEntry_)[^_]*/)[0].replace(/^.*_/, ''));
console.log("EntryCreateForm_TruckScaleEntry_DriverId_1535_SelectWidget_Code".match(/(?:.*TruckScaleEntry_)[^_]*/)[0].replace(/^.*_/, ''));
啊这是丑陋的。我能用一个正则表达式和一种方法做更清晰的事情吗?捕获组
你想** [这](https://regex101.com/r/wF4fG5/1)**? – rock321987
@ rock321987不完全。我更新了这个问题,因为'DriverId'就是一个例子,它也可能会改变。 – DontVoteMeDown
so [this](https://regex101.com/r/wF4fG5/2)? – rock321987