regex - 如何匹配字符类中字符串“like”的开头?
问题描述
我在文件中有一个字符串说:
abc
或者
def abc
我想匹配abc
它可以出现在行首或空白之后。
我可以通过匹配多个模式来做到这一点,用以下方式分隔|
:
/^abc|[[:blank:]]+abc/
但是有什么方法可以包括字符串的开头,^
比如字符类。
^
在字符类的开头意味着否定,其他位置意味着只匹配胡萝卜('^') 字符。
另外,在我原来的情况下,字符串不仅仅是abc
,而是一个与复杂正则表达式匹配的字符串,所以我希望它尽可能干净。我在awk
脚本中匹配这个正则表达式。尽管我仍然包含bash
标签,因为system()
仍然可以在其中使用功能。就我而言,速度对我来说并不重要,但清晰度却很重要。
解决方案
使用捕获组:
(^|[[:blank:]]+)abc
它将匹配字符串的开头或一系列空格。+
如果您不需要abc
比赛中前面的所有空白,但最后一个,您可以放弃。
推荐阅读
- wpf - 当 MenuItem 具有自定义 ControlTemplate 并在单独的 XAML 文件中定义时,如何将 MenuItem 与子 MenuItems 一起使用?
- xaml - DatePicker dd/mm/yyyy 格式显示 dd-mm-yyyy,为什么
- python - 将各种大小的数据集拆分为单独的数据帧
- python-3.x - 我只是想在 pyinstaller 中编译我的脚本并遇到了一些错误。我该如何修复它们?
- sql - SQL 查询 - 基于条件迭代
- java - 如何获得下周的第一天?
- android - 我的 PushNotification 不在个人频道 ID 中运行
- php - 内含特殊字符的 PHP 文件夹名称
- php - 使用 FOSUserBundle 显示连接用户
- javascript - 迭代一个数组并根据条件将值添加到第二个数组