python - 正则表达式获取字母数字字符串之间的非字母数字字符串

标签 python regex

假设我有这个字符串:

Alpha+*&Numeric%$^String%%$

我想获取字母数字字符之间的非字母数字字符:

+*& %$^

我有这个正则表达式:[^0-9a-zA-Z]+ 但它给了我

+* %$^ %%$

其中包括我不想要的拖尾非字母数字字符。我也尝试过 [0-9a-zA-Z]([^0-9a-zA-Z])+[0-9a-zA-Z] 但它给了我

a+*&N c%$^S

包括字符aNcS

最佳答案

如果您不介意将 _ 字符包含为字母数字数据,您可以使用以下方法提取所有非字母数字数据:

some_string = "A+*&N%$^S%%$"

import re
result = re.findall(r'\b\W+\b', some_string)  # sets result to:  ['+*&', '%$^']

请注意我使用的是 \b 而不是 \w[^\W]

\w[^\W] 各匹配一个字符,因此如果您的字母数字字符串(在您想要的文本之间)恰好是一个字符,则你认为应该是下一场比赛的比赛不会比赛。

但是因为 \b 是一个零宽度的“单词边界”,所以它不关心有多少个字母数字字符,只要至少有一个即可。

关于python - 正则表达式获取字母数字字符串之间的非字母数字字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56172951/

相关文章:

python - 如何迭代后缀列表以添加到列表中每个变量的末尾?

python - 在 Powershell 中使用 key 进行哈希

python - 在 crontab 的 shell 脚本中使用 python3

javascript - JSON 上的正则表达式替换正在从数组中删除一个对象

regex - Windows 批处理文件中的正则表达式

python - Pandas 有没有办法在 dataframe.apply 中使用先前的行值,其中先前的值也在 apply 中计算?

python - SQLAlchemy 删除级联完整性错误

javascript - 用对象中的值替换匹配的字符

regex - nginx:站点重定向期间出现 502 Bad gateway 错误

Javascript RegEx 将所有单词提取为单个匹配项,但不提取字符串中的数字