Lời Boundary Reference
General
POSIX
Từ liên kết ở trên nó xuất hiện POSIX hỗ trợ riêng của nó ranh giới từ xây dựng.
Lưu ý rằng các cấu trúc này [[:<:]]
, [[:>:]]
là không phải là các lớp.
Cho rằng, và sử dụng ERE như trái ngược với BRE, bạn sẽ có thể để làm điều này -
reti = regcomp(®ex,"[[:<:]](abc|def)[[:>:]]:[0-9]{10}@([A-Za-z0-9].*)", REG_EXTENDED);
hay, kể từ giữa [cf]
và :
là một ranh giới từ tự nhiên, nó có thể được giảm xuống
reti = regcomp(®ex,"[[:<:]](abc|def):[0-9]{10}@([A-Za-z0-9].*)", REG_EXTENDED);
Tôi chưa thử nghiệm nhưng nó có thể hoạt động.
Và thực tế là không rõ ràng về nội dung này trong nội bộ, có thể tốt hơn là
gắn với cú pháp này.
Một số công cụ, như Boost mà có tùy chọn POSIX, tùy chỉnh cú pháp để \<
và \>
'grep -E' sử dụng ERE cú pháp (Tôi nghĩ rằng đó là gần ERE, với một số cải tiến). Chuyển cờ 'REG_EXTENDED' vào' regcomp'. Tuy nhiên, tôi không chắc chắn '\ b' được hỗ trợ bởi' regex.h'. –
Phiên bản C của bạn sử dụng dấu gạch chéo ngược đơn bên trong một chuỗi C. Điều đó sẽ không hoạt động, vì những dấu gạch chéo ngược đó không được chuyển vào thư viện regex của bạn. (Đó là?) – usr2564301