以下作品:
/<(?:CURRENCY):[ ]*([\w\s]+(\s*,\s*)\d+(\s*\d+)*)>/i
有:
<currency: Sample Name, 76>
但现在我想将其更改为:<currency: Sample Name, 76, 76>
我不知道正则表达式能够改变我尝试过的方法:/<(?:CURRENCY):[ ]*([\w\s]+(\s*,\s*,\s*)\d+(\s*\d+\s*\d+)*)>/i
但它不起作用。想法?
答案 0 :(得分:0)
这可能有用
/<(?:CURRENCY):[ ]*([\w\s]+,\s*\d+(,\s*\d+\s*)*)>/i
我认为这部分(\s*,\s*,\s*)
正在寻找太多逗号和这一部分
(\s*\d+\s*\d+)
没有说明逗号。
答案 1 :(得分:0)
这些正则表达式很奇怪。
(?:CURRENCY)
:为什么在这里使用非捕获组,如果你没有对该组做任何事情?[ ]*
:一个包含单个字符的字符类?为什么不只是一个太空明星?等
以下是我将如何做到这一点(假设它最后可以包含许多数字,例如<currency: Sample Name, 23, 24, 25>
):
<currency: *[\w ]+(,\s*\d+)+>
如果你最后只需要匹配两个数字:
<currency: *[\w ]+(,\s*\d+){2}>
您可以将{2}
更改为任意数量的重复,并使用{2,}
作为最小数量但没有上限。
您可能需要根据需要添加捕获组(
)
。您还可以使用某些在线工具(例如regex101.com)来测试您的正则表达式。