grep(GNU grep)2.16
给出以下字符串:现在已经很晚了,但我想regexp_ _this!
grep '[a-zA-Z]+'
会点击除'
,_
和!
个字符以外的所有内容(确定)
但grep '[a-zA-Z]+[a-zA-Z0-9_]*'
没有任何内容(在我的示例regexp_
中应该匹配,但不是_this
(nok)
总结一下,我需要禁止以字母开头的单词,然后允许使用alphanum& '_'字符(0或更多时间)
我试过https://regex101.com,这两个正则表达式都是有效的。 只有在我的bash shell中(以及我正在编写的php代码中),第二个regexp才会命中。
编辑:@anubhava#1解决方案正常。
不过我想通过php代码来实现:preg_match('/[a-zA-Z]\+[a-zA-Z0-9_]*/',$myString)
不起作用......
重新编辑:我误解了使用PHP preg_match,抱歉
答案 0 :(得分:1)
我创建了一个包含内容的虚拟文件:
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);
我希望这就是你所需要的。