grep(GNU grep)2.16
给定以下字符串:已经很晚了,但是我想regexp_ _this!
grep '[a-zA-Z]+'
打一切,但'
,_
和!
字符(OK)
但grep '[a-zA-Z]+[a-zA-Z0-9_]*'
没有命中(在我的示例中regexp_
应该匹配,但不匹配_this
)
综上所述,我需要禁止以字母以外的其他词开头的单词,然后允许使用字母数字和'_'字符(0个或多个时间)
我已经在https://regex101.com上尝试过,这两个regexp都可以正常工作。仅在我的bash shell中(以及我正在编写的php代码中),第二个regexp没有任何作用。
编辑:@anubhava#1解决方案工作正常。不过我还是想通过php代码来做:preg_match('/[a-zA-Z]\+[a-zA-Z0-9_]*/',$myString)
不起作用...
重新编辑:我误解了PHP preg_match的使用,对不起
我创建了一个包含内容的虚拟文件:
regexp_
asdf
_this
R_
bash命令(我添加了^):
grep '^[a-zA-Z]\+[a-zA-Z0-9_]' dummy
给了我结果:
regexp_
asdf
R_
在PHP中,正则表达式需要如下所示(我在+之前添加了^并删除了\):
preg_match('/^[a-zA-Z]+[a-zA-Z0-9_]*/',$myString);
我希望这就是您所需要的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句