Điểm:0

Kiểm tra biểu thức chính quy

lá cờ eg

Tôi đang cố gắng tìm hiểu các biểu thức chính quy và đã xem qua một số ví dụ trực tuyến. Cố gắng kết hợp mọi thứ lại với nhau, tôi đã nhập cái này vào bash

^(([a-j][a-j]?)|(3[a-j][a-j])$

Nó trả về lỗi sau

bash: !!: không tìm thấy sự kiện.

Tại sao bạn tin rằng tôi đang nhận được điều đó? Tôi có nên tạo tệp từ a đến j không? hoặc tôi nên tạo 1 tệp có a-j trong đó? Tại sao nó trở lại đó? Cảm ơn sự giúp đỡ của bạn.

lá cờ fo
Vui lòng chỉ ra chính xác cách bạn đã sử dụng nó.Cắt và dán nếu có thể.
Smokefox avatar
lá cờ eg
Chào Glen. Tôi chỉ đang kiểm tra nó khi tôi nhập nó ở trên. ví dụ. Tôi đã kiểm tra ^/([0-9])|([0-9])$ và tôi gặp một lỗi khác "thay thế không thành công". Vì vậy, tôi chỉ đang cố gắng hiểu cốt lõi của nó. Tôi đã đọc nhiều bài viết về cách diễn đạt nhưng cần trợ giúp để hiểu.
lá cờ fo
Vì vậy, bạn chỉ cần gõ nó vào dấu nhắc bash? Bạn mong đợi điều gì sẽ xảy ra? Trong bash, bạn chỉ có thể sử dụng biểu thức chính quy như một phần của lệnh điều kiện `[[ $var =~ regex ]]`. Xem [3.2.5.2 Cấu trúc có điều kiện](https://www.gnu.org/software/bash/manual/bash.html#Conditional-Constructs)
lá cờ ph
Cú pháp Shell cực kỳ phụ thuộc vào ngữ cảnh; bash sẽ chỉ coi thứ gì đó là biểu thức chính quy nếu nó xuất hiện ở nơi mà bash mong muốn thấy biểu thức chính quy (tức là trong `[[ $var =~ regex ]]`). Vì bạn đã sử dụng nó trong ngữ cảnh lệnh chung, bash đã thấy `^` và giải thích nó như một sự thay thế lịch sử lệnh (tức là nó nghĩ bạn đang yêu cầu nó nhớ lại và sử dụng lại một số phần của lệnh trước đó), bởi vì đó là những gì `^` có nghĩa là trong ngữ cảnh lệnh chung. Nhưng nó không thể tìm thấy lệnh phù hợp trước đó ("sự kiện"), vì vậy bạn gặp lỗi "không tìm thấy sự kiện".
Smokefox avatar
lá cờ eg
@glennjackman cảm ơn bạn đó là câu trả lời tôi cần.
Smokefox avatar
lá cờ eg
@GordonDavisson Cảm ơn bạn đã phân tích vấn đề. Tôi hiểu nó tốt hơn bây giờ.
lá cờ us
Bạn có thể sử dụng https://regexr.com để chơi với các biểu thức thông thường.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.