【发布时间】:2018-10-04 04:25:13
【问题描述】:
我正在尝试创建一个正则表达式,它可以找到任何包含一个单词的行。由连字符或符号(例如测试词)或前导空格分隔的单词仍应被视为单个单词。
$cat file1
this line has many words
hello
test-hi
this does aswell
使用正则表达式
'/^\s*(\w+)\s$/GM'
只返回“hello”而忽略“test-hi”
我能够捕获所有单个单词,但不能捕获带有连字符等的单词!
【问题讨论】:
-
不知道你所说的
G和Msed 标志是什么意思。你能补充一些你为什么使用它们的细节吗?如果你的sed 版本支持它们? -
嗨,我正在使用 regexr.com 在浏览器中构建表达式。如果没有全局标志,我无法捕获测试中的所有行。我对这一切仍然很陌生,所以如果它看起来很奇怪,可能不会朝着正确的方向前进。干杯
-
哦,好的,像 regexr 这样的在线网站可能很有用,但您只需要将它们用于那些特定的语言(它将在页面的某处提到).. regex 语法和功能之间有很大差异编程语言和 cli 工具,甚至在同一工具的不同实现之间。有关详细信息,请参阅unix.stackexchange.com/questions/119905/…。