Chương trình của tôi đọc các chương trình mã nguồn và thông tin colect khác về các truy vấn SQL đã sử dụng. Tôi gặp vấn đề với việc nhận chuỗi con.Trong Perl, làm thế nào tôi có thể nhận được chuỗi con phù hợp từ một regex?
...
$line = <FILE_IN>;
until(($line =~m/$values_string/i && $line !~m/$rem_string/i) || eof)
{
if($line =~m/ \S{2}DT\S{3}/i)
{
# here I wish to get (only) substring that match to pattern \S{2}DT\S{3}
# (7 letter table name) and display it.
$line =~/\S{2}DT\S{3}/i;
print $line."\n";
...
In kết quả in toàn bộ dòng chứ không phải chuỗi con tôi mong đợi. Tôi đã thử cách tiếp cận khác nhau, nhưng tôi sử dụng Perl hiếm khi và có thể làm cho lỗi khái niệm cơ bản. (vị trí của tablename trong dòng không cố định. Một vấn đề khác là nhiều lần xuất hiện tức là [... SELECT * FROM AADTTAB, BBDTTAB, ...]). Làm thế nào tôi có thể có được chuỗi con?
Cảm ơn tất cả các phương pháp tiếp cận nhanh chóng và khác nhau. Tôi đã cố gắng sử dụng chúng tất cả ngày hôm qua và sáng hôm nay và/nhưng chỉ có $ & làm việc cho tôi. Cũng nhờ (sử dụng nghiêm ngặt; sử dụng cảnh báo;) đầu mối cho thấy tôi phong cách ngẫu hứng của tôi. Hôm nay tôi nhận ra tôi cũng không thông báo rằng tôi làm việc dưới cửa sổ (ngọc trai của tôi là: Đây là perl, v5.8.7 được tạo cho MSWin32-x86-multi-thread Copyright 1987-2005, Larry Wall Binary build 813 [148120] được cung cấp bởi ActiveState www.ActiveState.com Xây dựng ngày 6 tháng 6 năm 2005 13:36:37). Cảm ơn bạn một lần nữa. –
Tôi hơi bực mình sau khi "vô minh là một phúc lạc" trên khuôn mặt của tôi, nhưng nó đẩy tôi đến ... ừm ... hãy nói ngay bây giờ tôi biết những gì 'bắt nhóm' 'paren/dấu ngoặc đơn' và nó thực sự hoạt động. Xin đừng bình luận tôi cảm thấy ngớ ngẩn rồi. BTW, có ai ủng hộ bầu cử toàn cầu để đổi tên perl thành - tôi không biết - ngọc trai? ;) –
Đã có một ngôn ngữ có tên là Pearl, khi Larry Wall tìm kiếm tên. –