提问人:jeffma 提问时间:9/23/2023 最后编辑:InSyncjeffma 更新时间:9/23/2023 访问量:43
regualr 表达式与整个字符串不匹配的 grep
Grep with regualr expression not matching the whole string
问:
这可能是一个愚蠢的问题,但 ChatGPT 并不能胜任这项工作。
在我的理解中,应该贪婪地将字符串与字母或空格匹配,就像我用 https://regexr.com/ 和 Python 测试的那样。[a-zA-Z\s]+
import re
input_string = "abcd efgh--hello world adf sd"
pattern = r"[a-zA-Z\s]+"
match = re.search(pattern, input_string)
print(match.group())
print('---')
matches = re.findall(pattern, input_string)
for match in matches:
print(match)
>
abcd efgh
---
abcd efgh
hello world adf sd
但是,我不知道为什么没有给出相同的结果。grep -Eo
▶ echo ""abcd efgh--hello world adf sd"" | grep -Eo "[a-zA-Z\s]+"
abcd
efgh
hello
world
adf
sd
我的目标是使用 .我的猜测是 with 没有进行贪婪的搜索,但我不确定这一点,我不知道解决它的解决方案。grep
grep
-o
答: 暂无答案
评论
-E
选择 POSIX ERE 样式的正则表达式。 里面没有特别的意义......只是在它外面的意思是“s”。如果您的 grep 具有该选项,请选择 PCRE 样式的正则表达式。\s
[
]
-P
-P
\s
[[:alpha:][:blank:]]+