正则表达式反转选择
Regex invert selection
我环顾了一下周围,但找不到这个问题的答案。
我正在尝试 select 字符串中的所有内容 除了 重复一定次数的空格。我找到了 select 空格的正则表达式,我希望的是一种简单的方法来得到它的精确逆,但我还没有找到一种方法来做到这一点。如果重要的话,我最终会在 python 中实现它。
下面是我的测试字符串、当前正则表达式和 link 我正在使用的正则表达式测试站点。
测试字符串:
'All: Day and Night Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability 1E-09 /AvgeYear \x1a'
正则表达式:
[ ]{50,}
您可以使用相同的正则表达式,并且只 re.sub
匹配单个 space。
re.sub(r'[ ]{50,}', ' ', string)
#'All: Day and Night Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability 1E-09 /AvgeYear \x1a'
如果你想要它作为一个列表,只需使用相同的正则表达式并使用 re.split()
而不是 re.sub()
re.split(r'[ ]{50,}', string)
#['All: Day and Night', 'Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability', '1E-09', '/AvgeYear', '\x1a']
您可以匹配 1+ 个非空白字符,并可选择重复 1-49 个空格和 1+ 个非空白字符。
\S+(?:[ ]{1,49}\S+)*
看到一个regex demo | Python demo
例子
from pprint import pprint
import re
regex = r"\S+(?:[ ]{1,49}\S+)*"
s = "All: Day and Night Vulnerabilities\\Personnel vulnerabilities\\Outdoor vulnerability 1E-09 /AvgeYear \x1a'"
pprint(re.findall(regex, s))
输出
['All: Day and Night',
'Vulnerabilities\\Personnel vulnerabilities\\Outdoor vulnerability',
'1E-09',
'/AvgeYear',
"\x1a'"]
我环顾了一下周围,但找不到这个问题的答案。
我正在尝试 select 字符串中的所有内容 除了 重复一定次数的空格。我找到了 select 空格的正则表达式,我希望的是一种简单的方法来得到它的精确逆,但我还没有找到一种方法来做到这一点。如果重要的话,我最终会在 python 中实现它。
下面是我的测试字符串、当前正则表达式和 link 我正在使用的正则表达式测试站点。
测试字符串:
'All: Day and Night Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability 1E-09 /AvgeYear \x1a'
正则表达式:
[ ]{50,}
您可以使用相同的正则表达式,并且只 re.sub
匹配单个 space。
re.sub(r'[ ]{50,}', ' ', string)
#'All: Day and Night Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability 1E-09 /AvgeYear \x1a'
如果你想要它作为一个列表,只需使用相同的正则表达式并使用 re.split()
而不是 re.sub()
re.split(r'[ ]{50,}', string)
#['All: Day and Night', 'Vulnerabilities\Personnel vulnerabilities\Outdoor vulnerability', '1E-09', '/AvgeYear', '\x1a']
您可以匹配 1+ 个非空白字符,并可选择重复 1-49 个空格和 1+ 个非空白字符。
\S+(?:[ ]{1,49}\S+)*
看到一个regex demo | Python demo
例子
from pprint import pprint
import re
regex = r"\S+(?:[ ]{1,49}\S+)*"
s = "All: Day and Night Vulnerabilities\\Personnel vulnerabilities\\Outdoor vulnerability 1E-09 /AvgeYear \x1a'"
pprint(re.findall(regex, s))
输出
['All: Day and Night',
'Vulnerabilities\\Personnel vulnerabilities\\Outdoor vulnerability',
'1E-09',
'/AvgeYear',
"\x1a'"]