繁体   English   中英

使用Perl正则表达式提取子字符串

[英]Extract substring using perl regex

如何使用Perl正则表达式提取子字符串以进行跟踪?

Input: firstString123456lastString
Output: firstString

Input: first$String 123456 last@String
Output: first$String

类似于

echo "firstString123456lastString" | sed -e "s|\([a-z]*\)[0-9].*|\1|"

通过sed

$ echo 'firstString123456lastString' | sed 's/^\([^0-9 ]*\).*/\1/'
firstString
$ echo 'first$String 123456 last@String' | sed 's/^\([^0-9 ]*\).*/\1/'
first$String

说明:

  • ^断言我们是开始。
  • [^0-9 ]*否定的字符类,可匹配任何字符,但不匹配数字或零或零次以上的空格。
  • ([^0-9 ]*)匹配的字符由组索引1捕获。
$ echo "firstString123456lastString" | perl -pe 's/^([a-zA-Z]*)\d.*/$1/'
firstString

$ echo 'first$String 123456 last@String' | perl -pe 's/^([^\d\s]*).*/$1/'
first$String

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM