假设:
<currency: word with spaces, 56>
和正则表达式:
<(?:CURRENCY):[ ]*(\w+(\s*,\s*)\d+(\s*\d+)*)>
我必须更改以接受“带空格的单词”中的空格
答案 0 :(得分:1)
您目前正在搜索\w
这是一个单词字符,与空格相反。此外,不确定您是否打算捕获空格和逗号,而不是数字值。这只捕获了单词和数字。
<CURRENCY:\s+?(.+)\s*,\s*(\d+)(?:\s*(\d+))?>
在调试这些内容时,我发现regex101.com非常有用。
答案 1 :(得分:0)
这有帮助吗?
<(?:currency)\:\s*\w(\w|\s)+,\s*\d+(\s*|\d+)*>
答案 2 :(得分:0)
这应该做:
<currency: ((\w+\s*)*), (\d+)>
答案 3 :(得分:-1)
<(?:currency:)\s([\w\s]*),\s\d+>
如果您不想捕获空字符串,请将*
更改为+
你也不需要非捕获组?:
<currency:\s([\w\s]*),\s\d+>
也会这样做。
答案 4 :(得分:-2)
这对我有用:
<(currency):[ ]*(\w+(\s+\w+)*\s*,\s*\d+(\s*\d+)*)>
不确定&#34;?:&#34;是的,所以你可能想要:
<(?:CURRENCY):[ ]*(\w+(\s+\w+)*\s*,\s*\d+(\s*\d+)*)>