我想从输入中检索类似于下面的内容:code="XY85XXXX",""之间的子字符串。
在固定数目为8个字符的情况下,我可以使用(?<=code=").{8}检索值。但是目标子字符串长度是不同的,7或9,或者在3到11之间(如下面的例子所示),这也是我需要处理的。
例如,输入可以是code="XY85XXXX765"或code="123"。
我必须如何调整正则表达式以实现这种灵活性?
发布于 2022-06-09 13:48:15
您可以使用正向后查找来“锚定”固定部件(?<=code=")的匹配项和允许任何字符(但"发生一次或多次)的负字符类:
(?<=code=")[^"]+发布于 2022-06-09 13:28:37
您可以使用查找和查找这两个搜索引号:
(?<=").*(?=")
let rx = /(?<=").*(?=")/;
let extract = (txt) => console.log(txt.match(rx)[0]);
extract('code="XY85XXXX"');
extract('code="Y85XXXX"');
extract('code="ZXY85XXXXZ"');
发布于 2022-06-13 07:09:03
我在这个工具https://regex101.com/ for PHP中复制了解决方案((https://regex101.com/“)^”+)。好的,我得到了我的结果,但是当我在工具.NET中选择时,我没有结果。应该/必须改变什么?
https://stackoverflow.com/questions/72560824
复制相似问题