Regex 单词中的正则表达式空间
鉴于:Regex 单词中的正则表达式空间,regex,Regex,鉴于: 以及正则表达式: <currency: word with spaces, 56> 我必须更改什么才能接受“带空格的单词”中的空格这对我来说很有效: <(?:CURRENCY):[ ]*(\w+(\s*,\s*)\d+(\s*\d+)*)> 不确定“?:”的作用,因此您可能需要: <(currency):[ ]*(\w+(\s+\w+)*\s*,\s*\d+(\s*\d+)*)> 这有帮助吗 <(?:CURRENCY):[ ]
以及正则表达式:
<currency: word with spaces, 56>
我必须更改什么才能接受“带空格的单词”中的空格这对我来说很有效:
<(?:CURRENCY):[ ]*(\w+(\s*,\s*)\d+(\s*\d+)*)>
不确定“?:”的作用,因此您可能需要:
<(currency):[ ]*(\w+(\s+\w+)*\s*,\s*\d+(\s*\d+)*)>
这有帮助吗
<(?:CURRENCY):[ ]*(\w+(\s+\w+)*\s*,\s*\d+(\s*\d+)*)>
另一个:
<(?:currency)\:\s*\w(\w|\s)+,\s*\d+(\s*|\d+)*>
也可以这样做。您当前正在搜索
\w
,这是一个单词字符,与空白相对。另外,不确定是否要捕获空格和逗号,而不是数字值。这只捕获单词和数字
<currency:\s([\w\s]*),\s\d+>
我发现在调试这些东西时会很有帮助。这应该可以:
<CURRENCY:\s+?(.+)\s*,\s*(\d+)(?:\s*(\d+))?>
可能将\w
替换为[\w\s]
。@Xufox将无法接受“currency:word,56”您是故意捕获逗号的吗?而不是数字?这接受:不确定是否应该接受。这也接受:不确定是否应该接受。@Ingrid它应该捕获不带空格的word
。你在测试什么正则表达式?Rubular.com。当word和逗号之间没有空格时,它无法捕获,按初始正则表达式,逗号应该被捕获。“?:”是非捕获组?:
是非捕获组标记,因此您可以对事物进行分组,但不能捕获它们。我怀疑你可能因为回答一个问题而被否决,同时又声称不理解这个话题……我觉得这个社区有点令人惊讶——至少最初,我的答案在功能上是正确的(尽管有点多余),但它的得票率最低。
<CURRENCY:\s+?(.+)\s*,\s*(\d+)(?:\s*(\d+))?>
<currency: ((\w+\s*)*), (\d+)>