Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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,我需要将短语拆分为单词,但忽略已定义标记中的文本 比如说 输入 111 111 222 333 444 555 666 888 999 000 111 输出 <i>111 111 111</i> 222 333 444 <i>555 666</i> 888 999 <i>000 111</i> 111 222 333 444 555 666 888 999 000 111 试试这个: /<i>[\d\s]*&

我需要将短语拆分为单词,但忽略已定义标记中的文本 比如说

输入

111 111 222 333 444 555 666 888 999 000 111
输出

<i>111 111 111</i>
222
333
444
<i>555 666</i>
888
999
<i>000 111</i>
111
222
333
444
555 666
888
999
000 111
试试这个:

/<i>[\d\s]*<\/i>|\d+/g
/[\d\s]*\d+/g
说明:

  • 对于
    标记中的字符串,空格和数字都将包含在匹配中
  • 不在标记中的字符串不能包含空格,因此它们将被限制为数字字符串
  • 交流发电机短路,因此它确保
    111 222 333
    将被视为一个单元,而不是拆分为
    111
    222
    333

在这里的Regexr上测试,工作正常:

如果后面的下一个
>>重新导入
>>>test=“111 222 333 444 555 666 888 999 000 111”

>>>split=re.compile(“(?![^什么是“定义的标记”-任何标记?请改用。查找没有子节点的文本节点并拆分内容。您使用的语言是什么?所有示例都这么简单吗(即没有嵌套标记、没有xml注释、没有CDATA块)我使用.NET,如果有人给我举一个Regex.Split的例子,它将非常有用
/<i>[\d\s]*<\/i>|\d+/g
>>> import re
>>> test = "<i>111 111 111</i> 222 333 444 <i>555 666</i> 888 999 <i>000 111</i>"
>>> split = re.compile(" (?![^<]*</)")
>>> split.split(test)
['<i>111 111 111</i>', '222', '333', '444', '<i>555 666</i>', '888', '999', '<i>000 111</i>']