Làm cách nào để thực hiện kết quả regex như được hiển thị bên dưới, nhưng với dấu ngoặc kép xung quanh ("^ This") như trong thế giới thực "This" chuỗi có thể có dấu cách trong đó.Regex khớp một chuỗi với dấu cách (sử dụng dấu ngoặc kép?) Trong câu lệnh if
#!/bin/bash
text="This is just a test string"
if [[ "$text" =~ ^This ]]; then
echo "matched"
else
echo "not matched"
fi
tôi muốn làm một cái gì đó giống như
if [[ "$text" =~ "^This is" ]]; then
nhưng điều này không phù hợp.
+1 này chắc chắn là cách để làm điều đó. Bash regexes được sử dụng với '= ~' nên thường xuyên nhất (luôn luôn?) Được unquoted. –
Thật tuyệt khi nghe. Tôi chưa bao giờ sử dụng bash regex trước đây, tôi chỉ thử nghiệm và thấy rằng \ làm việc. * Trên S.O., nó chính xác cho đến khi được chứng minh là sai! * –
FWIW, điều này đã thay đổi giữa Bash 3.1 và Bash 3.2. Bash 4.0 có cấu hình 'shopt -s/-u compat31' để chuyển đổi giữa các hành vi. – ephemient