Hiển thị các bài đăng có nhãn Tổng hợp. Hiển thị tất cả bài đăng
Hiển thị các bài đăng có nhãn Tổng hợp. Hiển thị tất cả bài đăng

Thứ Bảy, 26 tháng 5, 2012

ProgDVB 6.84.5 Standard: Xem miễn phí hơn 4.000 kênh truyền hình, radio

ProgDVB 6.84.5 Standard (ProgDVB) là phiên bản mới nhất của phần mềm xem miễn phí các kênh truyền hình trên máy tính.

ProgDVB được cung cấp tại đây (dung lượng: 11,81 MB), tương thích với Windows XP/Vista/7 (cả phiên bản 32-bit và 64-bit).
Cài đặt
Sau khi tải về xong, bạn kích hoạt tập tin thu được > chọn I Agree.
Nhấn Browse tại trường Destination Folder để chỉ định thư mục cài đặt > nhấn Next.
Ở bước tiếp theo, bạn cần chọn thiết bị bắt sóng truyền hình, radio mà đang kết nối với máy tính. Nếu chỉ sử dụng đường truyền Internet thì bạn chọn Internet TV, Internet Radio, YouTube là được.

Sau đó, bạn chỉ định nơi lưu trữ dữ liệu mà ProgDVB buffer được trong quá trình tải về. Bạn có thể dùng bộ nhớ RAM để lưu phần dữ liệu này, đây cũng là cách lưu trữ cho tốc độ nhanh hơn, tuy nhiên chỉ dành cho máy tính có bộ nhớ RAM lớn, bạn chọn In Memory… Ngoài ra, bạn có thể chọn In File… > nhấn để chỉ định nơi lưu trữ tập tin buffer. Bạn nhập dung lượng dữ liệu buffer (nạp) sẽ được lưu trữ, mặc định là 200MB. Sau khi ProgDVB buffer đủ lượng dữ liệu này thì sẽ tiến hành phát xem và liên tục xóa, ghi những dữ liệu đó, song không bao giờ vượt quá dung lượng mà bạn chỉ định.


Các bước cài đặt sau đó, bạn cứ nhấn Next. Xong, nhấn Install để cài đặt theo các cấu hình đã thiết lập.
Sử dụng
Hoàn thành cài đặt, bạn kích hoạt tập tin ProgDVB 6 trên màn hình để sử dụng. Giao diện ProgDVB 6 khá đơn giản, trong đó quan trọng nhất là danh sách các kênh, đài ở bên trái giao diện. Bạn chỉ việc lựa chọn quốc gia và nhấn đôi chuột vào kênh TV, radio muốn xem. Nếu kênh vừa chọn có tín hiệu tốt thì bạn chỉ việc đợi một chút cho ProgDVB 6 buffer phần dữ liệu đầu và phát cho bạn xem xuyên suốt, hạn chế tối đa bị đứng hình.

- Đổi tên kênh: Các kênh TV, radio hiện thị trong danh sách với tên mặc định của nhà đài có thể gây khó khăn cho người dùng nếu tên khó nhớ. Để thay đổi tên một kênh, bạn chọn kênh đó trong danh sách > vào Edit > Rename > nhập tên mới > nhấn Enter.
- Tạo kênh mới: Nếu có đường dẫn phát dữ liệu của một kênh TV, Radio miễn phí nào đó mà chưa có trong danh sách, bạn có thể dùng để tạo một kênh mới. Trước tiên, bạn vào Edit > New > chọn Folder để tạo nhóm chứa các kênh cho dễ quản lí. Sau đó, vào lại Edit > New > chọn Channel để khởi tạo kênh mới trong nhóm vừa tạo. Sau đó, bạn đặt tên cho kênh tại ô Name, dán đường dẫn truyền dữ liệu của kênh mà bạn có vào ô URL. Ngoài ra, bạn còn có thể thiết lập một số thông tin phụ khác. Xong, nhấn OK. Lúc này, kênh vừa tạo đã có trong danh sách bên phải giao diện ProgDVB 6, bạn có thể chọn xem bất kỳ lúc nào.

Lưu ý: Khi xem truyền hình qua đường truyền Internet, bạn nên sử dụng ADSL trọn gói vì lượng dữ liệu tải về rất lớn.

(http://xahoithongtin.com.vn/2012051602543662p0c252/progdvb-6845-standard-xem-mien-phi-hon-4000-kenh-truyen-hinh-radio.htm)

Thứ Sáu, 2 tháng 3, 2012

Từ lơ xe thành đại gia bất động sản

Trước khi trở thành chủ tịch của một công ty bất động sản có doanh thu 700 tỷ đồng mỗi năm, doanh nhân Phạm Quang Dũng đã trải qua những ngày tháng cơ hàn làm lơ xe để kiếm miếng sinh nhai.

Sinh ra trong một gia đình thuần nông ở tỉnh Nam Định, ngay từ nhỏ, ông Phạm Quang Dũng đã đam mê kinh doanh và đeo đuổi ước mơ làm giàu. Nhưng khi lên 8 tuổi, ông mắc một chứng bệnh đau bụng lạ khiến mỗi năm phải nghỉ học 3 tháng. Quá trình học đứt đoạn, lại đúng lúc chiến trường kêu gọi, ông lên đường nhập ngũ khi mới tốt nghiệp lớp 7.

Doanh nhân Phạm Quang Dũng - Chủ tịch Công ty cổ phần TASCO (TARIC).

Tháng 1 năm 1972, ông vào quân đội và được chọn làm cán bộ huấn luyện thông tin của Bộ Tư lệnh Pháo binh. Với quan niệm “xanh cỏ còn hơn đỏ ngực”, ông nhiều lần xin ra tiền chiến song đều bị từ chối. Năm 1975, ông xuất ngũ và thi đậu vào trường nghiệp vụ thủy lợi, khoa kế toán.

Sau 5 năm học, ông trở về quê, công tác tại phòng Giao thông thủy lợi của huyện Hải Hậu. Những ngày tháng công chức nhà nước khiến ông quyết định phải đầu tư một cái gì đó để gia đình mình, làng quê mình thoát nghèo. Ông nhớ lại: “Ai cũng đi làm theo kẻng để ghi điểm mà đói thì vẫn hoàn đói, đến mua cái vé ôtô cũng phải xếp hàng từ tối hôm trước, có người quen làm ở phòng giao thông, may ra cũng chỉ xin được giấy giới thiệu để được mua vé, đi từ Nam Định lên Hà Nội mất đến 2 ngày trời...”

Chứng kiến cảnh đó, từ những năm 1982-1983, ông Phạm Quang Dũng bắt đầu đầu tư công nông chở hàng, máy xay gia công, ôtô tải... Và đến năm 1988, khi nhà nước có chủ trương xã hội hóa, ông chuyển sang kinh doanh xe khách. Ngày thường đi làm công chức, cuối tuần lại đóng vai lơ xe.

Năm 1995, ông dứt áo công chức nhà nước sau 15 năm công tác để chuyển sang công ty xây dựng của huyện. Ban đầu chỉ là đấu thầu thành công những dự án của xã, ở huyện rồi có chút tiếng tăm, ông liên doanh với công ty công trình giao thông Nam Định, tiền thân của TARIC ngày nay. 2 năm sau, ông được vị giám đốc của đơn vị đối tác mời về với vị trí phó giám đốc, bất chấp dị nghị của bao người về trình độ bằng cấp.

Năm 1998, ông Phạm Quang Dũng lên giữ chức giám đốc trong tình cảnh doanh nghiệp đứng trên bờ vực phá sản. Năm 2000, tổng tài sản của công ty chỉ là 600 triệu đồng. Nhờ cổ phần hóa, số vốn huy động được là 7 tỷ đồng, giúp đơn vị từng bước khắc phục được khó khăn. Đến nay, tổng số vốn điều lệ của TARIC đã 350 tỷ đồng với doanh thu mỗi năm khoảng 700 tỷ đồng.
Mới đây, ông đã vinh dự là một trong 24 Doanh nhân nhận giải thưởng Ernst & Young – Bản lĩnh doanh nhân lập nghiệp 2011.
Mới đây, ông đã vinh dự là một trong 24 Doanh nhân nhận giải thưởng Ernst & Young – Bản lĩnh doanh nhân lập nghiệp 2011.
Doanh nhân Phạm Quang Dũng là một trong 24 Doanh nhân nhận giải thưởng Ernst & Young – Bản lĩnh doanh nhân lập nghiệp 2011.

Mỗi ngày làm việc 15-16 tiếng, cả tuần chỉ nghỉ nửa buổi ngày chủ nhật, học và tự học không ngừng trên thương trường để có được thành quả như vậy song ông Phạm Quang Dũng luôn tâm niệm, thành công của TARIC là nhờ luôn giữ uy tín, chất lượng sản phẩm và sự đồng lòng, đoàn kết trong nội bộ công ty. Ngoài ra, vấn đề đào tạo trong doanh nghiệp cũng luôn được ông đề cao với việc đầu tư 2 tỷ đồng mỗi năm.

Ông Dũng kể, trong một lần tham gia khóa đào tạo quản trị tại Nhật, ông được biết các doanh nghiệp bên đó luôn coi trọng và đầu tư tỷ lệ phần trăm doanh thu nhất định cho đào tạo. Về nước, ông cũng áp dụng song mất nhiều tiền, thời gian mà không thu được hiệu quả. Sau một thời kỳ dài lãng phí, ông mới hiểu được bản chất của đào tạo trong doanh nghiệp là bù lỗ hổng, nghĩa là với mỗi vị trí nhất định phải yêu cầu năng lực chuẩn, đối chiếu với năng lực thực tế để bù đắp những mặt còn thiếu.

Trong bối cảnh như hiện nay, ông Dũng cho rằng không riêng gì bất động sản mà các lĩnh vực kinh doanh khác đều lâm vào tình cảnh khó khăn. “Đến hàng cơm bình dân cũng lao đao vì bây giờ giới văn phòng cũng quay lại thời kỳ cơm hộp, có mấy nơi đặt cơm trưa như trước đâu”, ông chia sẻ. Tuy nhiên, theo doanh nhân này, 75% giá trị doanh nghiệp nằm ở vốn nhân lực và văn hóa. Điều này nếu được đầu tư xứng đáng sẽ giúp đơn vị vượt qua giai đoạn khủng hoảng.

Từ cậu bé sinh ra trong một gia đình nghèo, nay sở hữu tổng tài sản trị giá cả trăm tỷ đồng, vươn lên làm chủ một doanh nghiệp lớn sau chặng đường học hành dang dở, doanh nhân Phạm Quang Dũng cho rằng ước mơ, đam mê là yếu tố then chốt.

“Muốn thành công trước hết cần phải có ước mơ, kế hoạch cho riêng mình. Mình phải biết mình muốn gì thì trời mới biết để cho. Đến Harvard cũng chỉ trang bị phương pháp logic, kiến thức phải là sự trải nghiệm”, ông Phạm Quang Dũng chia sẻ.

Xuân Ngọc
VNEXPRESS.NET
(http://tintucso.net/tintuc/tu-lo-xe-thanh-dai-gia-bat-dong-san.html)

Thứ Tư, 10 tháng 8, 2011

Truyền thống quái chiêu tại các trường học Mỹ

Đừng bước chân lên bậc thang số 6

Tại trường Đại học California - Los Angeles, những sinh viên vẫn thường truyền nhau câu chuyện về cầu thang 87 - lối chính để vào trường. Tại đây, ở bậc thang số 6, một sinh viên đã chết và được chôn tại đó. Chính vì thế, theo truyền thống, các sinh viên không bước lên bậc thang này trừ phi họ muốn bị học đúp. Có một điều là người ta hay làm lễ cầu nguyện tại đây và nhiều vết nến còn sót lại như một minh chứng.

Nửa đêm bị gọi dậy ăn sáng

Đây là bữa ăn dành cho các sinh viên trong trường Barnard có tên là Midnight Breakfast, tổ chức trước kỳ thi giúp các bạn ý cảm thấy được xả stress trước khi bước vào kỳ thử lửa cam go. Sinh viên đến ăn lúc nửa đêm có thể mặc đồ ngủ, và được hiệu trưởng trường đại học, trưởng khoa cũng như các thành viên khác trong trường phục vụ đồ ăn thức uống nhiệt tình ^^.

Sơn đủ thứ lên người

Tại trường Brandeis, có một truyền thống kỳ quặc là sinh viên sử dụng cơ thể mình để bôi vẽ các thứ thỏa thích. Họ có thể sáng tạo thoải mái và được hoan nghênh nhiệt liệt, thậm chí bôi vẽ càng táo bạo thì còn được cho là có... cá tính.

Hét toán loạn vào 10h đêm

Ở trường Carleton, trước khi bước vào kỳ thi cuối cùng, sinh viên được phép giảm căng thẳng bằng cách thò đầu ra ngoài cửa sổ và hét thật to.

Phân tâm sinh viên để họ không chú ý học hành

Tại trường Đại học Columbia có một ngày đặc biệt tên là Orgo Night. Vào trước ngày thi của môn hóa hữu cơ, một môn cực kỳ khó nhằn với đa số sinh viên. "Nhóm bạo động" sẽ xuất hiện và làm náo loạn thư viện của trường, mục đích là để sinh viên không thể tập trung học tập, đây là cách giảm căng thẳng rất hiệu quả :O

Đúng 12 giờ đêm, nhóm bạo động có mặt và bắt đầu làm phiền học sinh, sinh viên đang học bài chăm chỉ. Tuy ồn ào nhưng kết quả là có vài sinh viên vẫn cắm đầu cắm cổ vào tài liệu như không hề có chuyện gì xảy ra.

Chạy vòng quanh trường không mảnh vải che thân

Có một lễ hội khỏa thân dành cho các sinh viên trong trường Tufts. Mặc dù không biết chính xác nó có xuất xứ từ đâu, nhưng cho đến bây giờ lễ hội này đã phổ biến được hơn mười năm và nó thường có vào mùa thu.

Đầu tiên, những sinh nam trong ký túc xá sẽ làm nóng bầu không khí bằng cách bắt đầu chạy khỏa thân trong ánh lửa, tiếng nhạc xập xình. Sau đó toàn bộ sinh viên sẽ hòa vào, không mặt quần áo. Cũng có một nhóm khác tụ tập lại cùng nhau, khi làm nóng mình lên bằng rượu, họ sẽ tập trung một chỗ, cởi quần áo, chạy ra khỏi ký túc xá với số điện thoại ghi trên lưng và mông.

Ở trường Đại học Virginia cũng có truyền thống chạy khỏa thân, sinh viên sẽ phải chạy đến hôn bức tượng Homer.

Trường học của những thiên thần

Có một câu chuyện rất hay ho như thế này, tại trường Đại học Sewanee rộng lớn đẹp như tranh, nơi được coi là vùng đất của các thiên thần. Người ta truyền rằng, có những thiên thần ở trước cổng trường nơi bạn đi qua. Chỉ cần vừa qua khỏi cổng, bạn vỗ nhẹ lên nóc xe ô tô thì như vậy bạn đã được thiên thần bảo vệ. Khi quay lại, bạn chỉ cần tiếp tục vỗ lại nóc xe, bạn đã trả thiên thần ấy về trường.

Trước khi tốt nghiệp phải lái xe đi vòng tròn

Theo truyền thống không chính thức ở trường Duke, một số sinh viên trước khi tốt nghiệp phải lái xe ngược quanh vòng tròn giao thông. Bên cạnh đó, nếu sinh viên trong trường Duke muốn được xem bóng rổ ở trường thì phải cắm trại và liên lạc với bên ngoài bằng internet, sau đó mới được vé miễn phí.

Bộ xương di động

Đó là linh vật chính thức tại trường Emory. Vào mùa xuân, linh vật bộ xương mặc áo choàng đen đi dạo xung quanh trường, đột ngột xuất hiện trong phòng học và đuổi các sinh viên ở trong lớp đi ra ngoài. Linh vật này có vẻ không khiến các sinh viên hoảng sợ cho lắm.

Ngày sinh nhật bị ném vào bể nước

Tại trường đại học Occidental, vào ngày sinh nhật của mình, các bạn sinh viên sẽ bị ném xuống vòi phun nước Gilman.

Chuông Gió


(http://ione.net/tin-tuc/hoc-duong/cong-truong/2011/03/7351-truyen-thong-quai-chieu-tai-cac-truong-hoc-my.html)

Ký túc xá đẹp ngây ngất

Học Viện Quản Lý Singapore - SIM Global Education là một trong những trường ĐH hàng đầu tại Sing. Với lợi thế môi trường giáo dục toàn cầu thu hút sinh viên từ 40 quốc gia, SIM thời gian gần đây là địa chỉ nhiều teen du học muốn khám phá lắm đấy!

Trường có một khu ký túc xá khá hiện đại tại Ulu Panda với diện tích rộng lớn và trang thiết bị đẹp thôi rồi. Chúng mình cùng ngắm nghía để năm sau sang đấy 'du hí' nhá!

Trường có 6 khu nhà ở được trang bị máy lạnh 24/24h.

Mời bạn vào tham quan nào^^

Giá cho một căn phòng như này khoảng 535 SGD/người/tháng và 1 phòng như này thì dành cho 3 người ở.

Gia tài của sinh viên 'nằm cả đây', xem ra cũng ổn đấy nhỉ?

Còn đây lại là một dạng phòng đôi dành cho sv tại ký túc xá.

Phòng này có cả ti vi nữa nhé!

Điều hòa nè.

Dưới có cả gara để ô tô nữa cơ.

Đây là một phòng ở ký túc xá Công nghệ Nayang.

Một góc phòng đơn, quá ổn phải không?

Nơi xem ti vi của sinh viên, tường lát mới, đã có sự sửa sang rồi đấy nhé.

Hình ảnh ký túc xá từ bên ngoài.

Đây là nơi để các bạn sinh viên tiếp khách ^^

Cùng trò chuyện và tán gẫu với nhau.

Bạn có đoán được đây là gì không? - Hội trường của các bạn sv trường Cao đẳng NUS - trong hệ thống đào tạo của trường SIM đấy.

Một góc, nơi nấu ăn của các bạn ấy. Òa! Ký túc xá mà cứ như khách sạn ấy nhỉ?

Dương Ly


(http://ione.net/tin-tuc/hoc-duong/du-hoc/2011/08/13435-ky-tuc-xa-dep-ngay-ngat.html)

Cách làm nước hoa hồng handmade đây!

Mất không quá 45 phút đâu. :P

Bye bye 'mắt gấu trúc' với sữa chống thâm quầng tự chế

Tự chế sữa rửa mặt tẩy da chết không khó tí nào

Chắc hẳn các bạn gái không hề xa lạ với nước hoa hồng phải không nào. Nước hoa hồng có tác dụng rất tốt cho da chúng ta như: cân bằng độ ẩm, se lỗ chân lông v.v… Vậy tại sao chúng ta lại không tự làm nước hoa hồng ở nhà, vừa sạch lại vừa tiết kiệm. Tất cả chỉ mất không quá 45’ đâu nhé!

Quá trình chế biến nước hoa hồng của các nhà sản xuất mỹ phẩm có thể được giải thích đơn giản như sau:

Các nhà sản xuất có một hệ thống 2 bình nối với nhau, một nóng và một lạnh. Nước và nguyên liệu (hoa hồng tươi/ khô) được chứa trong bình nóng; bình nóng này được đun lên để nước nóng, khi nước nóng bốc hơi sẽ mang theo các hoạt chất của nguyên liệu. Hơi nước bay sang bình lạnh qua một ống nối, đọng lại ở bình lạnh (các hoạt chất cũng đọng lại trong nước đã nguội) và đây gọi là nước hoa hồng. (Các loại nước thơm của các loại hoa khác cũng được sản xuất tương tự như trên).

Còn chúng ta cũng sẽ bắt tay vào làm nước hoa hồng bằng việc “bắt chước” hệ thống phức tạp kia, nhưng sử dụng những dụng cụ có sẵn ở …nhà bếp nhé!

Nguyên vật liệu làm 100ml nước hoa hồng:

- 125ml nước cất /nước uống đóng chai (Loại nước đã được lọc và không chứa cặn lắng)
- 75g hoa hồng khô/ 150g hoa hồng tươi (Các bạn nên mua hoa khô vì hoa hồng khô được bán dùng để uống trà nên an toàn hơn, hoa tươi do bảo quản nên đã bị phun khá nhiều thuốc sâu)
- 1 nồi thành cao (lõi nồi cơm điện)
- 1 đĩa vũng đậy vừa nồi
- 1 đĩa nhỏ
- 1 xửng hấp/giá hấp
- 1 bát sứ
- 5-6 khay đá lạnh

Lưu ý: Khử trùng toàn bộ dụng cụ trước khi làm bằng cách lấy bông tẩm cồn 90 độ lau sạch.

Cùng làm nhé:

Bước 1:

Đổ hoa hồng khô vào nồi và sau đó là nước cất.

Bước 2:

Cho 1 chiếc đĩa nhỏ vào giữa nồi, tiếp đến là xửng hấp.

Tiếp đến các bạn cho bát sứ lên trên xửng và đậy đĩa vũng lên. Nhớ chỉnh cho chiếc đĩa khít với miệng nồi để tránh bay hơi ra ngoài nha.

Xong xuôi chúng ta bật bếp với lửa nhỏ liu riu.

Bước 3:

Sau khi đun được khoảng 45giây-1phút, bắt đầu cho đá lên đĩa. Đá tan hết chúng ta lấy khăn thấm nước và thay lượt đá mới. Tiếp tục như vậy trong khoảng 30’ thì tắt bếp.

Và thành phẩm chúng ta có là nước hoa hồng ở bát sứ rất thơm.

Các bạn chú ý là nước hoa hồng của chúng ta sẽ không có màu đâu nhé!

Các bạn có thể giữ nước hoa hồng trong lọ thủy tinh có nắp và bảo quản trong tủ lạnh. (Hạn sử dụng trong vòng 2 tuần nha!). Mỗi lần dùng các bạn có thể dùng miếng bông nhỏ tẩm nước hoa hồng và thoa đều lên mặt.

Mỗi khi dùng có thể xịt trực tiếp lên da, vừa tiện lại vừa thích nhé! Lại có thể mang đi di chuyển được. Một cách nữa để bảo quản nước hoa hồng đó là đổ nước hoa hồng vào khay đá viên, mỗi lần dùng các bạn lấy 1 viên thoa đều lên da. Nước đá lạnh làm tăng hiệu quả se khít lỗ chân lông và săn chắc da. Và nhớ vỗ nhẹ để da có thể thẩm thấu tốt hơn nha!

Không kém những loại nước hoa hồng có trên thị trường đâu nhé! Chúc các bạn thành công!

Nam Hoa


(http://ione.net/tin-tuc/do-tu-che/lo-mo/2011/08/13564-cach-lam-nuoc-hoa-hong-handmade-day.html)

Thứ Tư, 1 tháng 6, 2011

Regular Expression

Regular Expressions (Regex) dịch ra tiếng Việt là Biểu thức chính quy. Regex có thể xem là một mẫu (pattern) dùng để mô tả một lớp ký tự nào đó.
Ví dụ: lazydog là 1 regex. Nó là 1 mẫu đơn giản nhất vì nó so khớp (match) với đoạn text lazydog. 1 match là 1 đoạn text so khớp với mẫu.
Ví dụ phức tạp hơn 1 chút: \b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b Đây là mẫu mô tả 1 địa chỉ email. Mẫu này có thể dc dùng để tìm 1 địa chỉ email trong 1 đoạn văn bản, hoặc kiểm tra xem 1 chuỗi có phải là địa chỉ email
hợp lệ hay không.
Regex có thể dc sử dụng với bất kỳ dữ liệu nào mà ta có thể truy cập, thông qua ứng dụng hoặc ngôn ngữ lập trình. Có thể kể đến 1 số ứng dụng xử lý văn bản hỗ trợ regex: PowerGREP, EditPad Pro, RegexBuddy,…
Ký tự thông thường (Literal Characters)

Regex cơ bản nhất chính là biểu thức bao gồm 1 ký tự thông thường, Ví dụ: a. Nó sẽ so khớp với thực thể đầu tiên của ký tự đó trong chuỗi. Ví dụ nếu có chuỗi: LazyDog is a boy, nó sẽ so khớp với ký tự a sau ký tự L. Regex này cũng có thể so khớp với ký tự a thứ 2 nếu điều khiển regex engine tiếp tục tìm kiếm sau khi đã so khớp được 1 lần.
Cũng như vậy, regex dog sẽ so khớp với dog trong chuỗi LazyDog is not a dog. Regex này bao gồm 1 chuỗi 3 ký tự thông thường. Engine sẽ hiểu biểu thức này là: tìm d, theo sau bởi o, theo sau bởi g.
Chú ý rằng regex engine mặc định phân biệt chữ hoa và chữ thường. Dog ko so khớp với dog.
Ký tự đặc biệt (Special Characters)

Trong cú pháp regex được thảo luận ở đây, có 11 ký tự mang ý nghĩa đặc biệt: [ \ ^ $ . | ? * + ( ). Chúng được gọi là các metacharacter.
Nếu cần dùng các ký tự này với ý nghĩa thông thường, ta phải giải phóng nó bằng \. Ví dụ nếu cần so khớp 1+1=2, thì regex đúng sẽ là 1\+1=2. Chú ý rằng 1+1=2 cũng là regex đúng, nên sẽ ko báo lỗi, nhưng nó sẽ ko cho ta kết quả như mong muốn. Regex 1+1=2 sẽ so khớp với 111=2 trong chuỗi 123+111=234, vì dấu + ở đây mang ý nghĩa đặc biệt.
Nếu ta quên ko giải phóng ký tự đặc biệt ở những chỗ nó ko dc phép đứng thì sẽ gặp lỗi. Ví dụ: +1
Hầu hết các loại cú pháp regex đều coi { như 1 ký tự thông thường, trừ khi nó là 1 phần của toán tử nhắc lại (repetition operator), Ví dụ: {1, 3}. Vì vậy ta ko cần giải phóng ký tự này.
Ta chỉ dùng \ để giải phóng các ký tự đặc biệt, còn các ký tự khác thì ko nên, vì \ cũng là 1 ký tự đặc biệt. \ khi kết hợp với 1 ký tự thông thường sẽ có ý nghĩa đặc biệt, Ví dụ: \d sẽ so khớp với 1 chữ số từ 0 - 9.
Tất cả các loại cú pháp regex đều cho phép giải phóng 1 ký tự đặc biệt bằng \. Rất nhiều cú pháp khác còn hỗ trợ kiểu giải phóng \Q... \E. Tất cả các ký tự nằm trong cặp \Q và \E sẽ dc coi như ký tự thông thường. Ví dụ: \Q*\d+*\E sẽ so khớp với đoạn văn bản *\d+* . Kiểu cú pháp này dc hỗ trợ bởi JGsoft engine, Perl, PCRE, ...
Ký tự đặc biệt và ngôn ngữ lập trình

Khác với trong ngôn ngữ lập trình, trong regex, ký tự ' và " ko phải là ký tự đặc biệt. Vì vậy, ko cần phải giải phóng nó.
Trong mã nguồn của 1 chương trình, cần luôn ghi nhớ những ký tự nào dc ngôn ngữ lập trình xử lý đặc biệt. Bởi vì những ký tự này sẽ dc trình biên dịch xử lý trước khi dc engine regex xử lý. Ví dụ: regex 1\+1=2 phải dc viết thành 1\\+1=2 trong mã nguồn C++. Trình biên dịch C++ sẽ chuyển \\ thành \ trong chuỗi trên,
sau đó nó mới dc chuyển đến regex engine. Ví dụ khác: đế so khớp c:\temp, cần dùng regex c:\\temp (vì \t trong regex mang ý nghĩa đặc biệt). Và trong mã nguồn C++, regex này cần dc viết là c:\\\\temp.
Ký tự ko in được

Có thể dùng các tổ hợp ký tự đặc biệt để đặt các ký tự ko in dc vào regex.
\t cho ký tự tab (ASCII 0x09)
\r cho carriage return (0x0D)
\n cho line feed (0x0A).
\a (bell, 0x07)
\e (escape, 0x1B)
\f (form feed, 0x0C)
\v (vertical tab, 0x0B).
Chú ý rằng Windows text files sử dụng \r\n để kết thúc dòng, còn UNIX text files sử dụng \n.
Có thể dùng cách này để viết bất kỳ ký tự nào nếu biết mã 16 ASCII của ký tự đó trong bảng mã đang dùng. Ví dụ trong bảng mã Latin-1, ký tự copyright có mã 0xA9. Vì thế để tìm ký tự này, ta dùng \xA9.
Hầu hết các loại cú pháp regex còn cho phép sử dụng tổ hợp \cA đến \cZ (c cố định, theo sau bởi 1 chữ cái hoa từ A - Z) để biểu thị ký tự điều khiển. Ví dụ \cA biểu thị Control+A. \cM biểu thị Control+M, hay carriage return, giống như \r.
Nếu regex engine hỗ trợ Unicode, ta sử dụng \uFFFF thay cho \xFF để biểu thị 1 ký tự Unicode. Ví dụ: mã unicode của ký tự đồng euro là 0x20AC. Để đặt nó vào biểu thức regex, ta dùng \u20AC.
Lớp ký tự (Character Classes - Character Sets)
Sử dụng lớp ký tự, ta sẽ khiến regex engine chỉ chọn ra 1 ký tự để so khớp. Để sử dụng, ta đặt các ký tự cần so khớp vào 2 dấu [ và ]. Ví dụ: để so khớp ký tự a hoặc e, ta dùng [ae]. Như vậy biểu thức gr[ae]y sẽ khớp với gray hoặc grey.
Lớp ký tự chỉ so khớp với 1 ký tự đơn. Như vậy gr[ae]y sẽ ko khớp với graay, graey,v.v… Thứ tự các ký tự trong lớp ko quan trọng. Kết quả trả về luôn giống nhau.
Để xác định 1 vùng ký tự trong lớp ký tự, ta sử dụng dấu – . Ví dụ: [0-9] so khớp với 1 chữ số từ 0 – 9. Có thể sử dụng nhiều vùng ký tự hoặc kết hợp vùng ký tự với ký tự đơn. Ví dụ: [0-9a-fA-F] so khớp với 1 chữ số hệ 16, ko phân biệt chữ hoa, thường. [0-9a-fxA-FX] so khớp với 1 chữ số hệ 16 hoặc chữ cái X, ko phân biệt chữ hoa, thường. Cũng như trên, thứ tự các vùng ko quan trọng.
Lớp ký tự phủ định
Đặt dấu ^ sau [ trong lớp ký tự sẽ phủ định lớp ký tự đó. Kết quả là lớp ký tự sẽ so khớp với bất kỳ ký tự nào ko nằm trong lớp ký tự đó. Lớp ký tự phủ định có thể so khớp với cả ký tự line break.
Chú ý rằng lớp ký tự phủ định vẫn phải dc so khớp với 1 ký tự. Ví dụ: q[^u] ko phải là “q ko theo sau bởi u” mà là “q theo sau bởi 1 ký tự ko phải u”. Vì vậy nó sẽ ko so khớp với q trong chuỗi Iraq, và sẽ so khớp với q và space trong chuỗi Iraq is a country.
Metacharacter trong lớp ký tự
Trong lớp ký tự, các ký tự mang ý nghĩa đặc biệt hay metacharacter chỉ bao gồm: ] \ ^ -. Các metacharacter nói ở phần trước khi đặt trong lớp ký tự sẽ chỉ dc coi như ký tự thông thường, và do đó ko cần phải giải phóng. Ví dụ: để tìm ký tự * hoặc +, ta dùng [+*].
Để đặt ký tự \ vào trong lớp ký tự với nghĩa thông thường, cần giải phóng nó bằng 1 ký tự \ khác. Ví dụ: [\\x] sẽ khơp với ký tự \ hoặc x. Các ký tự ] ^ – nếu muốn dùng theo nghĩa thông thường cũng phải dc giải phóng bằng \ hoặc đặt nó ở vị trí mà nó sẽ ko có ý nghĩa đặc biệt. Ta nên dùng cách thứ 2 để biểu thức regex trông dễ nhìn hơn như sau:
Với ^, đặt nó ở bất kỳ chỗ nào trừ vị trí ngay sau [ . Ví dụ: [x^] sẽ khớp với x hoặc ^.
Với ], đặt nó ngay sau [ hoặc [^ . Ví dụ: []x] sẽ khớp với ] hoặc x. [^]x] sẽ khớp với bất kỳ ký tự nào ko phải là ] hoặc x.
Với -, đặt nó ngay sau [ hoặc [^ , hoặc ngay trước ]. Ví dụ: cả [-x] và [x-] đều so khớp với – hoặc x.
Có thể sử dụng tất cả các ký tự ko in dc trong lớp ký tự giống như dùng chúng ngoài lớp ký tự. Ví dụ: [$\u20AC] sẽ khớp với $ hoặc ký tự đồng euro (với giả định cú pháp regex đang dùng hỗ trợ unicode).
JGsoft engine, Perl và PCRE còn hỗ trợ kiểu \Q…\E trong lớp ký tự để giải phóng 1 chuỗi ký tự. Ví dụ: [\Q[-]\E] sẽ khớp với [ hoặc - hoặc ].
Cú pháp regex của POSIX lại xử lý \ trong lớp ký tự như 1 ký tự thông thường. Đồng nghĩa với việc ta ko thể dùng \ để giải phóng ] ^ -. Để làm việc này ta chỉ còn cách đặt chúng vào các vị trí như trình bày ở trên. Ngoài ra điều này cũng đồng nghĩa với việc các cú pháp tắt (shorthand, Ví dụ: \d) ko còn hiệu lực.
Lớp ký tự viết tắt (Shorthand Character Classes)

\d là dạng tắt của [0-9].
\w dc gọi là “ký tự từ” (word character). Chính xác những ký tự nào dc khớp với nó thay đổi tuỳ theo mỗi loại cú pháp regex. Trong tất cả các loại cú pháp, nó sẽ bao gồm [A-Za-z]. Trong hầu hết các loại cú pháp, nó cũng bao gồm cả dấu _ và chữ số.
\s dc gọi là “ký tự trắng” (whitespace character). Nó khớp với ký tự nào thì cũng tùy thuộc vào từng loại cú pháp. Trong kiểu cú pháp thảo luận ở đây, nó bao gồm [\t]. Nghĩa là \s sẽ khớp với space hoặc tab. Trong hầu hết cú pháp , nó cũng bao gồm cả ký tự carriage return hoặc line feed, nghĩa là [\t\r\n]. Một số cú pháp khác lại bao gồm thêm cả các ký tự ko in dc hiếm khi dùng như vertical tab hoặc form feed.
Các lớp ký tự viết tắt có thể dc dùng cả trong lẫn ngoài cặp []. Ví dụ: \s\d khớp với 1 ký tự trắng theo sau bởi 1 chữ số. [\s\d] khớp với 1 ký tự đơn là 1 ký tự trắng hoặc 1 chữ số. Khi áp dụng vào chuỗi 1 + 2 = 3, regex thứ 1 sẽ khớp với 2 (space và 2), trong khi regex thứ 2 sẽ khớp với 1. [\da-fA-F] khớp với 1 chữ số hệ 16, giống như [0-9a-fA-F].

Lớp ký tự viết tắt phủ định (Negated Shorthand Character Classes)

\D tương đương [^\d]
\W tương đương [^\w]
\S tương đương [^\s]
Cần thận trọng khi sử dụng dạng viết tắt phủ địng bên trong []. [\D\S] khác với [^\d\s]. Regex thứ 2 sẽ khớp với bất kỳ ký tự nào ko phải là chữ số hoặc ký tự trắng. Còn regex thứ 1 sẽ khớp với bất kỳ ký tự nào ko phải là chữ số hoặc ko phải là ký tự trắng. Và vì chữ số ko phải là ký tự trắng và ký tự trắng ko phải là chữ số cho nên [\D\S] sẽ khớp với bất kỳ ký tự nào, bao gồm cả ký tự trắng và chữ số.
Ký tự chấm (Dot)

Ký tự Dot khớp với hầu hết các ký tự
Trong biểu thức regex, dấu . là metacharacter dc sử dụng nhiều nhất, và cũng là ký tự bị sử dụng sai nhiều nhất.
Dấu . khớp với 1 ký tự đơn bất kỳ ngoại trừ ký tự newline. Vì vậy, dấu . tương đương với [^\n] (trong UNIX) hoặc [^\r\n] (trong Windows).
Trong Perl, dấu . có thể khớp với cả newline nếu ta dùng chế độ “single-line mode”. Để sử dụng chế độ này, ta thêm s vào sau biểu thức regex, Ví dụ: m/^regex$/s;
JavaScript và VBScript ko có chế độ nào hỗ trợ Dot so khớp với các ký tự line break. Vì vậy, để so khớp với bất kỳ ký tự nào ta phải dùng [\s\S] thay cho Dot. [\s\S] so khớp với 1 ký tự là ký tự trắng (bao gồm cả các ký tự line break) hoặc ko phải ký tự trắng, nghĩa là nó so khớp với bất kỳ ký tự nào. Sử dụng Dot 1 cách tiết kiệm
Dấu . là 1 metacharacter đầy uy lực. Nó có thể khớp với bất kỳ ký tự nào, nhưng cũng có thể khớp với ký tự mà ta ko muốn. Những trường hợp như thế có thế rất khó nhận ra.
Hãy lấy 1 Ví dụ đơn giản để minh hoạ: giải sử ta muốn tìm 1 chuỗi ngày tháng năm dưới dạng mm/dd/yy, trong đó dấu phân cách ngày tháng năm ta để người dùng tuỳ chọn. Giải pháp nhanh nhất là \d\d.\d\d.\d\d. Trông có vẻ ổn. Nó sẽ khớp 1 chuỗi kiểu như 02/12/03. Vấn đề là 1 chuỗi kiểu như 02512703 cũng dc coi là 1 ngày hợp lệ với regex trên (chấm thứ 1 khớp với 5, chấm thứ 2 khớp với 7).
Giải pháp tốt hơn là: \d\d[- /.]\d\d[- /.]\d\d. Regex này cho phép – hoặc space hoặc . hoặc / làm dấu phân cách ngày tháng năm. Lưu ý rằng dấu . trong lớp ký tự là 1 ký tự thông thường, do đó ko cần phải giải phóng. Nhưng regex này vẫn chưa hoàn hảo, nó sẽ coi 99/99/99 là 1 ngày hợp lệ.
Giải pháp tiếp theo: [0-1]\d[- /.][0-3]\d[- /.]\d\d. Ổn hơn nhưng vẫn chưa hoàn hảo, nó có thể khớp với 19/39/99.
Chất lượng của regex thế nào tuỳ thuộc vào yêu cầu của bạn. Ví dụ nếu muốn thẩm định thông tin nhập vào từ người dùng thì regex phải thật hoàn hảo. Còn nếu phân tích 1 file dữ liệu mà bạn đã biết chắc mã nguồn tạo ra file đó theo cách thức như thế nào thì regex có thể ở mức vừa đủ mà thôi.
Sử dụng lớp ký tự phủ định thay cho Dot
Hãy lấy 1 Ví dụ để tìm hiểu tại sao. Giả sử ta cần tìm 1 chuỗi bao bởi ” “. Nghe có vẻ đơn giản như đang giỡn. Chuỗi này có thể có bao nhiêu ký tự tuỳ thích, do đó “.*” có vẻ ổn. Dấu . khớp với bất kỳ ký tự nào, còn dấu * sẽ cho phép . có thể dc nhắc lại bao nhiêu lần tuỳ thích, kể cả 0 lần. Nếu áp dụng regex này vào chuỗi Put a “string” between double quotes, nó sẽ trả về kết quả đúng như mong đợi: “string”. Giờ hãy thử với chuỗi Houston, we have a problem with “string one” and “string two”. Please respond. Và kết quả là “string one” and “string two”, hỏng zồi ;D. Lý do là vì * vốn có bản tính “tham lam” (greedy). Chi tiết thế nào thì hồi sau sẽ rõ. Ví dụ này cho thấy ko nên lạm dụng dấu chấm.
Trong Ví dụ tìm ngày ở trên, ta cải tiến regex bằng cách sử dụng lớp ký tự thay cho dấu chấm. Giờ ta cũng làm như vậy. Ta ko muốn có số lượng bất kỳ các ký tự bất kỳ trong cặp dấu ” “, mà muốn có số lượng bất kỳ các ký tự ko phải là ” hoặc newline trong cặp dấu ” “. Do đó regex đúng sẽ là “[^"\r\n]*”.
Kiểm tra tính hợp lệ của các biểu mẫu là yếu tố rất quan trọng trong việc lập trình web. Trong PHP, Regular Expression (RE) có thể được dùng để kiểm tra người dùng có nhập một địa chỉ e-mail hợp lệ hay không.
Trong PHP, tập hàm RE được chia làm 2 loại:
- Hàm ereg: Cú pháp biểu thức chứa qui tắc chuẩn của PHP.
- Các hàm preg: Cú pháp biểu thức chứa qui tắc tương thích với perl.
Địa chỉ e-mail có dạng: username@domain.extension, ví dụ hameo87@gmail.com. Với một địa chỉ e-mail, thông thường có một phần mở rộng, ta sẽ viết:
CODE:
eregi(’^[a-zA-Z0-9._-]+@[a-zA-Z0-9-] +\.[a-zA-Z.]{2,5}$’, $email)
Tách ví dụ thành 3 phần nhỏ để dễ hiểu hơn:
- ^[a-zA-Z0-9._-]+@: Phần này có nhiệm vụ kiểm tra phần username của e-mail. Dấu mũ “^” ở đầu báo hiệu nơi bắt đầu chuỗi, nếu thiếu nó, người dùng có thể gõ bất kỳ thứ gì trước địa chỉ e-mail. Những ký tự trong dấu ngoặc vuông là những ký tự cho phép. Ta chấp nhận các chữ cái thường và hoa từ A đến Z, các chữ số từ 0 đến 9 và dấu chấm “.”, dấu gạch dưới “_”, dấu gạch trên “-”. Dấu cộng “+” ký tự “@”, sau ngoặc vuông đòi hỏi phải có một hoặc nhiều hơn một ký tự thuộc phạm vi cho phép trong dấu ngoặc vuông, vì vậy người dùng bắt buộc phải nhập phần username trong địa chỉ e-mail. Việc giới hạn số ký tự, ta sẽ xét ở phần sau. Cuối cùng, chữ @ cũng là chữ @ bình thường trong địa chỉ e-mail.
- [a-zA-Z0-9._-]+\.: Phần này cũng tương tự như kiểm tra username, và dấu cộng sau ngoặc buộc người dùng phải nhập tên miền của địa chỉ e-mail, ở cuối là một dấu “\” trước dấu “.” báo cho biểu thức rằng có một dấu chấm được yêu cầu tại vị trí này. Ý nghĩa của dấu “\” để thông báo đây là ký tự bình thường để tránh hiểu nhầm với ký tự “.” đứng một mình, sẽ được hiểu như một ký tự điều khiển cho biết tại vị trí đó có thể nhập ký tự bất kỳ.
- [a-zA-Z]{2,4}$: Phần này để kiểm tra phần mở rộng là phần cuối của biểu thức. Chúng ta chỉ cho phép các ký tự hoa, thường từ “A” đến “Z” thay vì dùng dấu cộng, ta dùng ngay {2,4} sau ngoặc vuông để qui định số ký tự tối thiểu và tối đa cho tên miền là 2 và 4 ( Ví dụ: vn, net, org …). Cuối cùng kýá tự $ có nghĩa là kết thúc chuỗi, người dùng không thể nhập thêm gì phía sau tên miền.
Các ký tự thường dùng trong Regular Expression

. : đại diện cho 1 ký tự bất kỳ trừ ký tự xuống dòng \n.
\d : ký tự chữ số tương đương [0-9]
\D : ký tự ko phải chữ số
\s : ký tự khoảng trắng tương đương [ \f\n\r\t\v]
\S : ký tự không phải khoảng trắng tương đương [ ^\f\n\r\t\v]
\w : ký tự word (gồm chữ cái và chữ số, dấu gạch dưới _ ) tương đương
[a-zA-Z_0-9]
\W : ký tự không phải ký tự word tương đương [^a-zA-Z_0-9]
^ : bắt đầu 1 chuỗi hay 1 dòng
$ : kết thúc 1 chuỗi hay 1 dòng
\A : bắt đầu 1 chuỗi
\z : kết thúc 1 chuỗi
| : ký tự ngăn cách so trùng tương đương với phép or (lưu ý cái này nếu muốn kết hợp nhiều điều kiện)
[abc] : khớp với 1 ký tự nằm trong nhóm là a hay b hay c.
[a-z] so trùng với 1 ký tự nằm trong phạm vi a-z, dùng dấu – làm dấu ngăn cách.
[^abc] sẽ không so trùng với 1 ký tự nằm trong nhóm, ví dụ không so trùng với a hay b hay c.
() : Xác định 1 group (biểu thức con) xem như nó là một yếu tố đơn lẻ trong pattern .ví dụ ((a(b))c) sẽ khớp với b, ab, abc.
? : khớp với đứng trước từ 0 hay 1 lần. Ví dụ A?B sẽ khớp với B hay AB.
* : khớp với đứng trước từ 0 lần trở lên . A*B khớp với B, AB, AAB
+ : khớp với đứng trước từ 1 lần trở lên. A+B khớp với AB, AAB.
{n} : n là con số, Khớp đúng với n ký tự đúng trước nó . Ví dụ A{2}) khớp đúng với 2 chữ A.
{n, } : khớp đúng với n ký tự trở lên đứng trước nó , A{2,} khớp vói AA, AAA …
{m,n} : khớp đùng với từ m->n ký tự đứng trước nó, A{2,4} khớp vói AA,AAA,AAAA.

(http://4rum.tinkhoahoc.info/showthread.php?t=2695,Cung-tim-hieu-ve-Regular-Expression#ixzz1O5cf0sfv)