Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 单词中的正则表达式空间_Regex - Fatal编程技术网

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+)>